我建立了一个网站。 在开发模式下,它很好地服务于.js文件。 但是,在生产模式下,会发生以下错误:
Refused to execute script from 'http://bowuzhi.herokuapp.com/javascripts/items.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
http://bowuzhi.herokuapp.com/javascripts/items.js的内容是html:
<div class='page-header'>
<a class="btn btn-primary" href="/zh-TW/items/new"><span class='glyphicon glyphicon-plus'></span>
New
</a><h1>Catalog</h1>
</div>
<div class='row' id='items'>
</div>
<div class='row'>
<div class='col-md-12'>
</div>
</div>
<script src="/javascripts/items.js"></script>
此网站位于heroku:http://bowuzhi.herokuapp.com。
为什么.js原来是html?
答案 0 :(得分:8)
我找到了答案。问题是/javascripts/items.js
是controller-specified asset。通过在视图上使用javascript_include_tag
帮助程序而不是包含在清单文件(application.js)中来包含它,因此它不会被预编译。
要解决此问题,我已将config.assets.precompile += %w(items.js)
行添加到config/application.rb
。
您可以在此问题中找到更多信息:rails-3-1-asset-pipeline-how-to-load-controller-specific-scripts。