0

我在将项目部署到 heroku 服务器时遇到问题(预编译失败)。所以我找到了这个回复,https://stackoverflow.com/a/13713753/2989437,并跟进了建议。我在 application.rb 文件中添加了一行:

应用程序.rb

module FirstEdc
  class Application < Rails::Application
    config.assets.initialize_on_precompile = false # I added this line
  ...
 end
end

然后我运行预编译命令,提交更改,并成功部署到 heroku。但是,现在我的 bootstrap/css 似乎在 heroku 部署和我的本地部署中都停止了运行。

我了解到我应该在我的 deployment.rb 文件中添加另一行:

部署.rb

FirstEdc::Application.configure do
  ...

  # Allows for local precompilling --added by Ian
  config.assets.prefix = '/dev-assets'
end

所以我添加了这个,重新编译并重新部署,但无济于事。

最后,我运行了一个 rake assets:clean 试图至少让我的本地部署恢复正常,但它没有用。

任何建议将不胜感激。我现在正在阅读更多资产管道,但我觉得这可能是缓存问题或其他什么。当我弄清楚发生了什么时,我会更新。

编辑。澄清一下,我尝试删除这两个添加,运行 rake assets:clean 和 rake assets:clean:all,但都没有修复我的本地部署。

4

2 回答 2

0

我没有config.assets.prefix在我的任何应用程序中使用它们,它们与 Heroku 配合得很好,所以不确定那是在做什么。

尝试删除该行,然后运行rake assets:clean​​. 现在,您的本地服务器应该在您更改文件时使用这些文件。想推的时候,先跑rake assets:precompile,再推。

如果您想在此之后在本地进行更改,请rake assets:clean再次运行以摆脱本地计算机上的预编译文件。

于 2013-12-19T16:16:49.873 回答
0

如果 Heroku 检测到其中的任何文件,public/assets它将不会尝试再次预编译您的资产。这是设计使然。

因此,您需要决定是始终使用 预编译您的资产,还是在推送到 Heroku 之前rake assets:precompile删除其中的任何文件。public/assets

(推荐的方法是让 Heroku 在推送期间预编译它们)

于 2013-12-19T16:51:12.100 回答