我从模板初始化Yesod项目。 在Foundation.hs尝试更改css变量时出现错误
$ stack new s1 yesod-simple
$ cd s1
$ mv static/css/bootstrap.css static/css/style.css
更改 Foundation.hs
pc <- widgetToPageContent $ do
addStylesheet $ StaticR css_bootstrap_css
$(widgetFile "default-layout")
到
pc <- widgetToPageContent $ do
addStylesheet $ StaticR css_style_css
$(widgetFile "default-layout")
$ stack build
...
[4 of 8] Compiling Foundation ( Foundation.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/Foundation.o )
Foundation.hs:64:37: Not in scope: ‘css_style_css’
但正如我所知,在编译时css_style_css应该会自动出现。 我做错了什么?如果我们需要将几个css文件添加到默认布局,我该怎么办?
答案 0 :(得分:4)
每当您修改静态文件夹时,请触摸StaticFiles.hs和您 应该很高兴。
因此,在控制台中运行此命令:
touch Settings/StaticFiles.hs
需要编译StaticFiles.hs
文件才能获得css_style_css
定义。如果您修改静态文件夹,此文件与文件夹内容不同步,但GHC / Stack无意找到。
答案 1 :(得分:1)
if flag(dev) || flag(library-only) cpp-options: -DDEVELOPMENT ghc-options: -Wall -fwarn-tabs -O0 else ghc-options: -Wall -fwarn-tabs -O2
并将 -fforce-recomp 添加到 ghc-options 以获取所需的行。