在生产模式下使用gem中的资产

时间:2013-08-07 10:52:35

标签: ruby-on-rails asset-pipeline

我想弄清楚如何让boostrap-sass在生产模式下工作。我正在使用apache将代理转换为webrick或puma,但直接在公共/资产中提供静态资产。当我预编译资产时,bootstrap css被包含在application-(hash).css中,并且它可以正常工作。

然而,编译的css引用了一个图像文件(glyphicons-halfling.png)而没有附加文件内容的哈希值。图像文件包含在public / assets目录中,可以通过在地址栏中输入正确的文件名来浏览它,但是css中的文件名与它不匹配。我创建了一个简单的演示应用程序来演示此问题,代码在我的github page

glyphicon文件名为glyphicons-halflings-c806376f05e4ccabe2c5315a8e95667c.png

[编辑]

仍然想要回答这个问题,但我刚刚重命名了有问题的文件来删除哈希。由于这些文件不太可能经常更改,因此这应该可以正常工作

1 个答案:

答案 0 :(得分:0)

认为我已经破解了,当你运行rake资产:预编译时,你似乎必须在它前面加上RAILS_ENV = production,以便它在生产模式下正常工作(我猜那种有意义)。如果不这样做,您的一些资产将被预编译,但辅助方法将不会生成正确的路径。

tl:dr,RAILS_ENV=production rake assets:precompile