当我将代码推送到Heroku时,我收到以下消息:
预编译资产失败,启用运行时资产编译
运行时编译可能会导致问题,因此我将以下行添加到config / application.rb:
config.assets.initialize_on_precompile = false
(正如Error pushing to heroku - aborting my rake assets:precompile和Heroku Help上建议的那样)
这允许预编译工作。但是,我的一些页面包含其他javascript文件。例如,我通过在特定页面上放置标记,在某些页面中包含来自'vendor / javascripts'的文件:
<%= javascript_include_tag "src/ace.js" %>
当我访问这样的页面时,它会导致以下错误(预编译时):
ActionView :: Template ::错误:src / ace.js未预编译
如何修复它以使这些页面不会抛出错误?
答案 0 :(得分:1)
您需要将文件添加到assets.precompile
。
将以下内容添加到config/environments/production.rb
以编译所有css / js文件:
config.assets.precompile = ['*.js', '*.css']
答案 1 :(得分:0)
您可以在javascript文件中添加ace.js和其他必需文件,例如“custom.js” 然后,您可以使用常规代码来包含文件
在 custom.js 中添加以下内容。 (假设ace.js位于vendor / javascripts中)
//= require ace
通过在 application.rb
中添加以下内容,将文件添加到编辑列表中config.assets.precompile += %w( custom.js )
您现在可以使用javascript_tag来包含来源
<%= javascript_include_tag "custom" %>