当我尝试访问我的网站时,请检查我的Heroku日志,我看到了这个错误:
ActionView :: Template :: Error(找不到文件'reset' 2012-06-13T02:31:43 + 00:00 app [web.1] :( in /app/app/assets/stylesheets/application.css:4)):
(application.css包含行* = require reset)
然后我想运行“heroku run bundle exec rake assets:precompile:all”但这会产生类似的错误:
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
couldn't find file 'main/first.js.coffee'
(in /tmp/build_3428u21sggsoc/app/assets/javascripts/application.js:1)
Tasks: TOP => assets:precompile:primary
(该文件是我的application.js中第一个需要的文件,第一行是“// = require main / first.js.coffee”)
总结:我的应用程序在本地运行正常,但是当我部署到Heroku时,无法再找到这些文件。有什么想法吗?
编辑:这是项目树。 (应用程序之前还有一个目录,这是主项目目录,还包含config,db,log等)
另一个编辑:.gitignore或.slugignore没有问题。
答案 0 :(得分:3)
首先,我建议您在本地计算机上以生产模式运行应用程序。有一些错误(在资产中,但我也在路由中找到了一些),这些错误只能对生产环境产生影响,因此您可以在本地测试和修复它们,而不必从生产服务器执行此操作。
关于Heroku上的资产预编译,akjoe给出的解决方案应该导致在git repo中跟踪编译的资产:使用此选项,您应该禁用在Heroku上发生的资产预编译并让Rails为您提供资产(设置{{1在你的config.serve_static_assets = true
文件中)但这不是处理资产管道的最佳方式,因为你失去了一个主要的好处,即释放你的资产请求的rails应用程序。
为了使其正常工作,您应该设置类似heroku解释的内容:Using Rack::Cache with Memcached for Static Asset Caching in Rails 3.1+
我还建议您在生产环境production.rb
中本地尝试资产预编译。看你是否有任何错误。
最后,您可能需要查看此不同的链接以查找有用的信息:
答案 1 :(得分:2)
我有几乎完全相同的问题和类似的错误,样式表编辑没有生效...我发现我会编辑css(或在你的情况下引用css文件)似乎被Heroku忽略。事实证明,Heroku仅引用public/assets
目录中的样式表。我清除了这个目录,并且能够使它正常工作。
我后来发现你需要在签入git之前预先编译你的资产目录。你可以这样做:
rake assets:precompile
git add .
git commit
-am "description goes here"
git push heroku master
(替换
你希望推向Heroku的分支的“主人”。希望有所帮助!