簡體   English   中英

Heroku上的Javascript資產編譯錯誤

[英]Javascript Assets Compilation Error on Heroku

在我的application.html.haml中

=stylesheet_link_tag "application", :media => "all"
=javascript_include_tag "jquery-1.11.0.min"
=javascript_include_tag "jquery-ui-1.10.4.min"
=javascript_include_tag "angular.min"
=javascript_include_tag "angular-route.min"
=javascript_include_tag "angular-resource.min"
=javascript_include_tag "angular-ui-router.min"

這些js文件目前在我的app / assets / javascripts文件夾中

當我將它部署到heroku時,我繼續得到它

3848+00:00 app[web.1]:     9:     =stylesheet_link_tag "application", :media => "all"
2014-05-01T21:25:16.063849+00:00 app[web.1]:     10:     =javascript_include_tag "jquery-1.11.0.min.js"
2014-05-01T21:25:16.063846+00:00 app[web.1]: ActionView::Template::Error (html5shiv.js isn't precompiled):
2014-05-01T21:25:15.995499+00:00 app[web.1]: Started GET "/" for 128.31.34.63 at 2014-05-01 21:25:15 +0000
2014-05-01T21:25:16.051098+00:00 app[web.1]:   Rendered home/index.html.haml within layouts/application (10.3ms)
2014-05-01T21:25:16.063843+00:00 app[web.1]: 
2014-05-01T21:25:16.063851+00:00 app[web.1]:     11:     =javascript_include_tag "jquery-ui-1.10.4.min.js"
2014-05-01T21:25:16.063853+00:00 app[web.1]:     12:     =javascript_include_tag "html5shiv.js"
2014-05-01T21:25:16.063854+00:00 app[web.1]:     13:     =javascript_include_tag "angular.min.js"
2014-05-01T21:25:16.063858+00:00 app[web.1]:     15:     =javascript_include_tag "angular-resource.min.js"
2014-05-01T21:25:16.063856+00:00 app[web.1]:     14:     =javascript_include_tag "angular-route.min.js"
2014-05-01T21:25:16.063860+00:00 app[web.1]:   app/views/layouts/application.html.haml:12:in `_app_views_layouts_application_html_haml___1963393475950734090_70074639367120'

我一直在獲取資產編譯錯誤。 我應該在我的application.js中要求它們嗎? 在我的application.js我有這些

//= require jquery_ujs
//= require bootstrap
//= require_tree .

我把它添加到我的config / environments / production.rb中

config.assets.precompile += %w(email.css event_creation_dynamic_form.js jquery-1.11.0.min.js jquery-ui-1.10.4.min.js angular.min.js angular-route.min.js)

這對我來說並沒有真正起作用。 我不太熟悉rails中的資產管道以及heroku資產管道的工作原理。 我也試過跑步

heroku run rake assets:precompile

我的javascript文件也都是縮小版本。 我希望這是正確的生產版本。 我正確使用js include標簽嗎?

看起來Heroku已經方便地告訴你問題是什么:

ActionView::Template::Error (html5shiv.js isn't precompiled)

因此,您需要將該文件添加到預編譯數組中,如下所示:

config.assets.precompile += %w(html5shiv.js, any-other-files-here)

話雖如此,為了回答你的問題,不,你沒有真正正確使用js include標簽。

您應該在application.js中包含那些js文件。 這樣,文件將與application.js一起預編譯,您不必將它們添加到預編譯路徑中。 例如,在application.js中:

//= require path/to/jquery-1.11.0.min.js
//= require path/to/jquery-ui-1.10.4.min.js
//= require path/to/angular.min.js
//= require path/to/angular-route.min.js
//= require path/to/angular-resource.min.js
//= require path/to/angular-ui-router.min.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM