Restore the staticRoot option from older versions of Yesod's scaffolding, so I can host static files on a subdomain easily
This commit is contained in:
parent
a981947374
commit
1794e63bb0
3 changed files with 18 additions and 3 deletions
|
@ -6,9 +6,8 @@ host: "_env:HOST:127.0.0.1"
|
||||||
port: "_env:PORT:3000" # NB: The port `yesod devel` uses is distinct from this value. Set the `yesod devel` port from the command line.
|
port: "_env:PORT:3000" # NB: The port `yesod devel` uses is distinct from this value. Set the `yesod devel` port from the command line.
|
||||||
ip-from-header: "_env:IP_FROM_HEADER:true"
|
ip-from-header: "_env:IP_FROM_HEADER:true"
|
||||||
|
|
||||||
# Default behavior: determine the application root from the request headers.
|
approot: "_env:APPROOT:https://00dani.dev"
|
||||||
# Uncomment to set an explicit approot
|
static-root: "_env:STATIC_ROOT:https://static.00dani.dev"
|
||||||
#approot: "_env:APPROOT:http://localhost:3000"
|
|
||||||
|
|
||||||
# Optional values with the following production defaults.
|
# Optional values with the following production defaults.
|
||||||
# In development, they default to the inverse.
|
# In development, they default to the inverse.
|
||||||
|
|
|
@ -77,6 +77,16 @@ instance Yesod App where
|
||||||
120 -- timeout in minutes
|
120 -- timeout in minutes
|
||||||
"config/client_session_key.aes"
|
"config/client_session_key.aes"
|
||||||
|
|
||||||
|
-- Redirect static requests to a subdomain - this is recommended for best
|
||||||
|
-- performance, since serving static files does not need your session
|
||||||
|
-- cookies and they can be served from the frontend HTTP server without
|
||||||
|
-- hitting the app server at all.
|
||||||
|
-- https://github.com/yesodweb/yesod-cookbook/blob/master/cookbook/Serve-static-files-from-a-separate-domain.md
|
||||||
|
urlParamRenderOverride app (StaticR s) _ = do
|
||||||
|
staticRoot <- appStaticRoot . appSettings $ app
|
||||||
|
return . uncurry (joinPath app staticRoot) . renderRoute $ s
|
||||||
|
urlParamRenderOverride _ _ _ = Nothing
|
||||||
|
|
||||||
-- Yesod Middleware allows you to run code before and after each handler function.
|
-- Yesod Middleware allows you to run code before and after each handler function.
|
||||||
-- The defaultYesodMiddleware adds the response header "Vary: Accept, Accept-Language" and performs authorization checks.
|
-- The defaultYesodMiddleware adds the response header "Vary: Accept, Accept-Language" and performs authorization checks.
|
||||||
-- Some users may also want to add the defaultCsrfMiddleware, which:
|
-- Some users may also want to add the defaultCsrfMiddleware, which:
|
||||||
|
|
|
@ -43,6 +43,10 @@ data AppSettings = AppSettings
|
||||||
-- ^ Get the IP address from the header when logging. Useful when sitting
|
-- ^ Get the IP address from the header when logging. Useful when sitting
|
||||||
-- behind a reverse proxy.
|
-- behind a reverse proxy.
|
||||||
|
|
||||||
|
, appStaticRoot :: Maybe Text
|
||||||
|
-- ^ Base for static generated URLs. Useful for serving static assets from
|
||||||
|
-- a separate domain. If @Nothing@, use @appRoot@ and @appStaticDir@ instead.
|
||||||
|
|
||||||
, appDetailedRequestLogging :: Bool
|
, appDetailedRequestLogging :: Bool
|
||||||
-- ^ Use detailed request logging system
|
-- ^ Use detailed request logging system
|
||||||
, appShouldLogAll :: Bool
|
, appShouldLogAll :: Bool
|
||||||
|
@ -79,6 +83,8 @@ instance FromJSON AppSettings where
|
||||||
appPort <- o .: "port"
|
appPort <- o .: "port"
|
||||||
appIpFromHeader <- o .: "ip-from-header"
|
appIpFromHeader <- o .: "ip-from-header"
|
||||||
|
|
||||||
|
appStaticRoot <- o .:? "static-root"
|
||||||
|
|
||||||
appDetailedRequestLogging <- o .:? "detailed-logging" .!= defaultDev
|
appDetailedRequestLogging <- o .:? "detailed-logging" .!= defaultDev
|
||||||
appShouldLogAll <- o .:? "should-log-all" .!= defaultDev
|
appShouldLogAll <- o .:? "should-log-all" .!= defaultDev
|
||||||
appReloadTemplates <- o .:? "reload-templates" .!= defaultDev
|
appReloadTemplates <- o .:? "reload-templates" .!= defaultDev
|
||||||
|
|
Loading…
Reference in a new issue