3

我最近在我的 Rails 3.2 应用程序中添加了一个 CSS 文件,但我正在为资产管道而苦苦挣扎。目前,它说ActionView::Template::Error (pdf.css isn't precompiled)

我已经= require pdf在我的app/assets/stylesheets/application.css文件中添加了一个。

还有什么必要的?

我必须添加pdf.cssconfig.assets.precompile吗?

如果是这样,为什么?不应该管它require吗?

我的application.css

/*
*= require_self
*= require chosen
*= require pdf
*= require_tree ./screen
*/
4

4 回答 4

3

您是否在 html 模板中的某处明确要求 pdf.css?

正如资产管道官方指南中所解释的,您在 html 中明确需要的每个文件(在清单文件之外)都需要通过将它们添加到config.assets.precompile.

于 2012-12-21T09:11:02.473 回答
0

尝试在您的 application.css 中编写(顺便说一句,它不应该是 application.css.scss 吗?):

*= require_tree .

这应该编译所有样式表。

也许您也可以尝试:

rake assets:precompile

它将在您的公共文件夹中生成预编译的样式表(好吧,如果我是对的......)。然后,您可以知道您的文件是否包含在该过程中。(不要忘记在开发中删除已编译的样式表,否则浏览器将始终加载此样式表,并且您之后不会进行任何更改)

于 2012-12-18T16:49:50.187 回答
0

pdf.css 文件中可能存在错误(错字)。看看你是否能找到任何缺少的分号或括号。

于 2012-12-18T18:55:02.257 回答
-1

你需要pdf.cssconfig.assets.precompile你的config/environments/production.rb.

Rails 的原因是假设您希望将所有样式集中在一个地方。

这也节省了预编译的空间。

示例:以下文件:

  • pdf.css
  • 屏幕.css
  • 打印.css

然后将全部编译成application.css.

于 2012-12-19T01:20:34.037 回答