38 lines
1.2 KiB
Haskell
38 lines
1.2 KiB
Haskell
{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, CPP #-}
|
|
{-|
|
|
|
|
This module exports routes for all the files in the static directory at
|
|
compile time, allowing compile-time verification that referenced files
|
|
exist. However, any files added during run-time can't be accessed this
|
|
way; use their FilePath or URL to access them.
|
|
|
|
This is a separate module to satisfy template haskell requirements.
|
|
|
|
-}
|
|
module Hledger.Web.Settings.StaticFiles where
|
|
|
|
import System.IO
|
|
import Yesod.Static
|
|
import qualified Yesod.Static as Static
|
|
|
|
import Prelude
|
|
import Hledger.Web.Settings (staticDir)
|
|
|
|
-- | use this to create your static file serving site
|
|
staticSite :: IO Static.Static
|
|
staticSite = do
|
|
#ifdef DEVELOPMENT
|
|
putStrLn ("using web files from: " ++ staticDir ++ "/") >> hFlush stdout
|
|
Static.staticDevel staticDir
|
|
#else
|
|
putStrLn "using embedded web files" >> hFlush stdout
|
|
return $(Static.embed staticDir)
|
|
#endif
|
|
|
|
|
|
-- | This generates easy references to files in the static directory at compile time,
|
|
-- giving you compile-time verification that referenced files exist.
|
|
-- Warning: any files added to your static directory during run-time can't be
|
|
-- accessed this way. You'll have to use their FilePath or URL to access them.
|
|
$(publicFiles staticDir)
|