0

当我将代码推送到 Heroku 时,我收到以下消息:

预编译资产失败,启用运行时资产编译

运行时编译可能会导致问题,因此我在 config/application.rb 中添加了以下行:

config.assets.initialize_on_precompile = false

(正如Error push to heroku - aborting my rake assets:precompileHeroku Help中所建议的那样)

这允许预编译工作。但是,我的一些页面包含其他 javascript 文件。例如,我通过在特定页面上放置标签来在某些页面中包含来自“vendor/javascripts”的文件:

<%= javascript_include_tag "src/ace.js" %>

当我访问这样的页面时,它会导致以下错误(预编译时):

ActionView::Template::Error: src/ace.js 未预编译

我该如何修复它以使此类页面不会引发错误?

4

2 回答 2

1

您需要将文件添加到assets.precompile.

添加以下内容以config/environments/production.rb编译所有 css/js 文件:

config.assets.precompile = ['*.js', '*.css']
于 2013-10-22T16:25:52.527 回答
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" %>
于 2013-10-22T16:24:24.410 回答