Rails 3.1资产管道css样式在404静态页面中

lul*_*ala 12 ruby-on-rails ruby-on-rails-3 asset-pipeline

我正在构建一个静态的public/404.html页面.在Rails 3.1之前,我可以使用public/style.css引用它.但现在有了资产管道,我不知道要链接到什么.我听说样式会被编译成asset/application.css.但在生产时它会带有时间戳.

使用我使用的常规样式来设置静态404.html的最佳方法是什么?

Pet*_*etr 15

您也可以使用资产管道预编译静态错误页面!

内部application.rb:

config.assets.paths << "#{Rails.root}/app/assets/html"
config.assets.precompile += %w(404.html 500.html)
Run Code Online (Sandbox Code Playgroud)

创建assets/html/文件404.html.erb,并500.html.erb与使用许多助手那里,像stylesheet_link_tag, javascript_include_tag, image_tag.

然后设置您的服务器以使用预编译public/assets/404.htmlpublic/assets/500.html

这个聪明的解决方案的所有学分都转到http://neovintage.blogspot.cz/2012/02/precompile-static-html-pages-with-rails.html

  • 在Rails 4中,这也是必要的:http://stackoverflow.com/questions/14284278/how-to-include-actionview-helpers-in-the-assets-pipeline (2认同)

Fed*_*les 6

确实,3.1中的资产在生产中带有摘要,但您仍然可以使用常规文件,这意味着您可以链接到,/assets/application.css并且您不会遇到任何问题(尝试它!:)).

  • ...如果你正在使用远期到期的标题,那么这个解决方案是不是让你搞砸了?如果您更新application.css并且用户已经缓存了该文件,该怎么办?他们不会得到你更新的样式. (4认同)