我最近在我的Rails 3.2应用程序中添加了一个CSS文件,我正在努力应对资产管道。
目前,它说ActionView::Template::Error (pdf.css isn't precompiled)
。
我在= require pdf
文件中添加了app/assets/stylesheets/application.css
。
还有什么必要吗?
我是否必须将pdf.css
添加到config.assets.precompile
?
如果是这样,为什么? require
不应该照顾它吗?
我的application.css
:
/*
*= require_self
*= require chosen
*= require pdf
*= require_tree ./screen
*/
答案 0 :(得分:3)
您是否在html模板中的某处明确要求使用pdf.css?
正如in the official guide to the asset pipeline所解释的那样,html中明确需要的每个文件(清单文件之外)需要通过将它们添加到config.assets.precompile
来编译。
答案 1 :(得分:0)
尝试在application.css中写一下(顺便说一下,它不应该是application.css.scss吗?):
*= require_tree .
这应该编译所有的样式表。
也许你也可以试试:
rake assets:precompile
它会在你的公共文件夹中生成预编译的样式表(好吧,如果我是对的......)。然后,您可以知道您的文件是否包含在流程中。 (不要忘记在开发中删除已编译的样式表,否则浏览器将始终加载此项并且不会对您进行任何更改)
答案 2 :(得分:0)
pdf.css文件中可能存在错误(拼写错误)。看看你是否能找到任何遗漏的半冒号或括号。
答案 3 :(得分:-1)
您需要在pdf.css
中将config.assets.precompile
添加到config/environments/production.rb
。
这样做的原因是rails假定您想要在一个地方放置所有样式。
这也节省了预编译的空间。
实施例: 以下文件:
将全部编译成application.css
。