【发布时间】:2014-06-29 01:08:43
【问题描述】:
不久前我升级了我的应用程序(在 heroku 上运行)以使用资产管道。
我将所有文件移到 app/assets 中,在 app/assets/javascript/application.js 中列出了每个文件并删除了 public。
当我推送到 heroku 时,资产被编译并且网站运行良好。
但是,如果我尝试使用 require_tree 而不是列出文件,它在本地或 Heroku 上都不起作用。我确实得到了一个 application.js 文件,但它似乎只是充满了 jquery 源代码,我的代码和我的 js 都没有在任何地方工作。
我也尝试过强制 jquery 在依赖的情况下首先加载:
$ cat application.js
// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//
//= require jquery-1.7.2.min.js
//= require jquery-ui-1.8.22.custom.min.js
//= require_tree .
但它没有帮助。
如果我恢复使用:
$ cat application.js
// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//
//= require_self
//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require default_on_first_input_field
//= require row_shading
//= require long_or_short_details
//= require sortable_hook
//= require date-picker
//= require rails
并将其推送到生产中,一切正常,各种 js 可用。
在任何一种情况下,js 应用程序页面都包含在app/views/layouts/application.html.haml 中
= javascript_include_tag "application"
我在本地使用 require_tree 遇到了同样的问题。在这种情况下,我的 javascript sn-ps 不起作用,即使我有
<script src="/assets/jquery-1.7.2.min.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui-1.8.22.custom.min.js?body=1" type="text/javascript"></script>
<script src="/assets/date-picker.js?body=1" type="text/javascript"></script>
<script src="/assets/default_on_first_input_field.js?body=1" type="text/javascript"></script>
<script src="/assets/long_or_short_details.js?body=1" type="text/javascript"></script>
<script src="/assets/rails.js?body=1" type="text/javascript"></script>
<script src="/assets/row_shading.js?body=1" type="text/javascript"></script>
<script src="/assets/sortable_hook.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
在 HTML 头部
由于该应用程序最初是 rails 2.3.8 并且经过多次升级,有什么可能导致这种行为吗?
我查看了 javascript 控制台,但似乎没有任何错误可以解释它。
在页面本身我最终得到:
<script src="/assets/jquery-1.7.2.min.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui-1.8.22.custom.min.js?body=1" type="text/javascript"></script>
<script src="/assets/date-picker.js?body=1" type="text/javascript"></script>
<script src="/assets/default_on_first_input_field.js?body=1" type="text/javascript"></script>
<script src="/assets/long_or_short_details.js?body=1" type="text/javascript"></script>
<script src="/assets/rails.js?body=1" type="text/javascript"></script>
<script src="/assets/row_shading.js?body=1" type="text/javascript"></script>
<script src="/assets/sortable_hook.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
【问题讨论】:
-
你解决了吗?因为这真的很奇怪,我很好奇
标签: ruby-on-rails ruby-on-rails-3 heroku asset-pipeline