Rails 3.1,Blueprint CSS和Heroku

时间:2011-12-23 20:36:50

标签: ruby-on-rails-3.1 heroku blueprint-css

我搜索了这个小组和网络的其他部分,发现了一些零碎的东西 解决我的问题,但没有发现任何真正有用的东西。

这是我的问题。 我正在运行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 将不会加载因为即使我已经预编译了文件 预编译它们。

非常感谢所有帮助。

2 个答案:

答案 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进行服务。有关这方面的更多信息,请访问:

http://devcenter.heroku.com/articles/cdn-asset-host-rails31

答案 1 :(得分:0)

除了你提到的步骤之外,你还记得在推送到Heroku之前将public / assets目录添加到你的git存储库吗?

我遇到了和你一样的问题,直到我读到Neil提到的同一篇文章,这让我想起了我忘记的这一简单步骤。

http://devcenter.heroku.com/articles/rails31_heroku_cedar