diff --git a/scaffold.hs b/scaffold.hs index b10b79a4..4cd75d07 100644 --- a/scaffold.hs +++ b/scaffold.hs @@ -79,7 +79,8 @@ main = do mkDir "hamlet" mkDir "cassius" mkDir "julius" - + mkDir "static" + writeFile' "test.hs" $(codegen "test_hs") writeFile' "production.hs" $(codegen "production_hs") writeFile' "devel-server.hs" $(codegen "devel-server_hs") @@ -90,6 +91,7 @@ main = do writeFile' "Handler/Root.hs" $(codegen "Root_hs") writeFile' "Model.hs" $(codegen "Model_hs") writeFile' "Settings.hs" $(codegen "Settings_hs") + writeFile' "StaticFiles.hs" $(codegen "StaticFiles_hs") writeFile' "cassius/default-layout.cassius" $(codegen "default-layout_cassius") writeFile' "hamlet/default-layout.hamlet" @@ -97,8 +99,9 @@ main = do writeFile' "hamlet/homepage.hamlet" $(codegen "homepage_hamlet") writeFile' "cassius/homepage.cassius" $(codegen "homepage_cassius") writeFile' "julius/homepage.julius" $(codegen "homepage_julius") - + S.writeFile (dir ++ "/favicon.ico") $(runIO (S.readFile "scaffold/favicon_ico.cg") >>= \bs -> do pack <- [|S.pack|] return $ pack `AppE` LitE (StringL $ S.unpack bs)) + \ No newline at end of file diff --git a/scaffold/StaticFiles_hs.cg b/scaffold/StaticFiles_hs.cg new file mode 100644 index 00000000..40178be5 --- /dev/null +++ b/scaffold/StaticFiles_hs.cg @@ -0,0 +1,11 @@ +{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies #-} +module StaticFiles where +import Yesod +import Yesod.Helpers.Static + +-- | This generates easy references to files in the static directory at compile time. +-- The upside to this is that you have compile-time verification that referenced files +-- exist. However, 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. +$(staticFiles "static") + diff --git a/scaffold/sitearg_hs.cg b/scaffold/sitearg_hs.cg index e678fff7..84203aeb 100644 --- a/scaffold/sitearg_hs.cg +++ b/scaffold/sitearg_hs.cg @@ -25,6 +25,7 @@ import qualified Data.ByteString.Lazy as L import Database.Persist.GenericSql import Settings (hamletFile, cassiusFile, juliusFile, widgetFile) import Model +import StaticFiles import Data.Maybe (isJust) import Control.Monad (join, unless) import Network.Mail.Mime