Ruby on rails RubyonRails:运行rake资产:预编译,现在本地和heroku部署都是don';不包括引导

Ruby on rails RubyonRails:运行rake资产:预编译,现在本地和heroku部署都是don';不包括引导,ruby-on-rails,heroku,asset-pipeline,precompiled,Ruby On Rails,Heroku,Asset Pipeline,Precompiled,我在将项目部署到heroku服务器时遇到问题(预编译失败)。所以我找到了这个答案,并跟进了建议。我在application.rb文件中添加了一行: application.rb module FirstEdc class Application < Rails::Application config.assets.initialize_on_precompile = false # I added this line ... end end 所以我添加了这个,重新编译和

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

application.rb

module FirstEdc
  class Application < Rails::Application
    config.assets.initialize_on_precompile = false # I added this line
  ...
 end
end
所以我添加了这个,重新编译和重新部署,但是没有用

最后,我运行了一个rakeassets:clean,试图至少让我的本地部署恢复正常,但它不起作用

如有任何建议,将不胜感激。我现在正在阅读更多关于资产管道的内容,但我觉得这可能是缓存问题或其他问题。我会在了解情况后更新


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

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

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


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

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

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


(推荐的方法是允许Heroku在推送过程中预编译它们)

我删除了这两个添加项,并尝试了rake assets:clean,但我的引导仍然不起作用。我现在可以部署了,这是一个优点,但我不知道如何让我的引导功能再次发挥作用。我添加了gem'bootstrap\u helper',但也没有帮助。不要删除第一个添加项。保持
config.assets.initialize\u on\u precompile=false
好吧,保持config.assets.initialize\u on\u precompile=false允许我推送到heroku,这很好。但是,我的引导程序仍然无法在本地或生产环境中运行。您使用的是哪个版本的Rails
initialize\u on\u precompile
在Rails 4中没有效果。
assets:clean
会清除预编译的资产,但链轮保留一个缓存,您也可以尝试清除它。使用
rake tmp:cache:clear
:感谢您的回复。你能理解为什么我的引导停止工作吗?再次感谢。你能澄清一下“停止工作”是什么意思吗?它不是在收集引导资产吗?你有错误吗?
FirstEdc::Application.configure do
  ...

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