【问题标题】:Ruby on Rails: Ran rake assets:precompile and now both local and heroku deployment don't include bootstrapRuby on Rails: Ran rake assets:precompile 现在本地和 heroku 部署都不包括引导程序
【发布时间】:2014-01-08 06:30:20
【问题描述】:

我在将项目部署到 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,但都没有修复我的本地部署。

【问题讨论】:

  • 您使用的是哪个版本的 Rails? initialize_on_precompile 在 Rails 4 中无效。
  • assets:clean 会清除预编译的资产,但 Sprockets 会保留一个缓存,您也可以尝试清除它。使用rake tmp:cache:clear:stackoverflow.com/questions/9246585/…

标签: ruby-on-rails heroku asset-pipeline precompiled


【解决方案1】:

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

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

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

【讨论】:

  • 我删除了这两个添加项,并尝试了 rake assets:clean,但我的引导程序仍然无法正常工作。我现在可以部署,这是一个优点,但我不确定如何让我的引导程序再次发挥作用。我添加了 gem 'bootstrap_helper',但它也没有帮助。
  • 不要删除第一个添加。保持config.assets.initialize_on_precompile = false
  • 好吧,保持 config.assets.initialize_on_precompile = false 可以让我推送到 heroku,这很好。但是,我的引导程序仍然无法在本地或生产环境中运行。
【解决方案2】:

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

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

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

【讨论】:

  • 感谢您的回复。您对我的引导程序停止工作的原因有任何见解吗?再次感谢。
  • 您能否澄清一下您所说的“停止工作”是什么意思?它不是拿起引导资产吗?你有错误吗?
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 2018-06-10
  • 2016-01-06
  • 2012-04-28
  • 1970-01-01
  • 2016-12-25
  • 2013-05-25
  • 2023-03-31
相关资源
最近更新 更多