我搜索了这个小组和网络的其他部分,发现了一些零碎的东西 解决我的问题,但没有发现任何真正有用的东西。
这是我的问题。 我正在运行Rails 3.1并部署到Heroku雪松堆栈。
我的资产/样式表目录中有蓝图。
当我尝试将其添加到我的应用程序模板时:
<%= stylesheet_link_tag 'blueprint/screen', :media => "screen,
projection" %>
<%= stylesheet_link_tag 'blueprint/print', :media => "print" %>
在我的命令提示符下运行:
RAILS_ENV=production bundle exec rake assets:precompile
然后部署我在Heroku上收到一条错误,上面写着“蓝图/ screen.css没有预编译“,但是当我查看公共/资产时 目录它在那里,它出现在清单中。即使我在提交和部署之前在本地运行预编译,我也会收到此错误。
如果我没有在我的应用程序模板中放任何东西并让Rails找到 蓝图,我将手动运行预编译,部署和Heroku将加载该站点。所以那是 好的。
但是,我在每个链接上都获得了URL路径。一些阅读 显示我需要添加“:media =&gt;”print“和”screen,projection“ 到我的模板,但每次我将线条添加到模板Heroku 将不会加载因为即使我已经预编译了文件 预编译它们。
非常感谢所有帮助。
答案 0 :(得分:0)
如果你在本地运行命令,我猜你的资产不在Git中。我不认为向git添加资产通常是一个好主意,因为普遍的共识是它比它的价值更麻烦:
Should I store generated code in source control
有关资产管道和Heroku的更多信息,请参阅此处:
http://devcenter.heroku.com/articles/rails31_heroku_cedar#the_asset_pipeline
就个人而言,我将资产留给部署后预编译,然后使用asset_sync gem将文件推送到S3进行服务。有关这方面的更多信息,请访问:
答案 1 :(得分:0)
除了你提到的步骤之外,你还记得在推送到Heroku之前将public / assets目录添加到你的git存储库吗?
我遇到了和你一样的问题,直到我读到Neil提到的同一篇文章,这让我想起了我忘记的这一简单步骤。