我将我的应用程序(在heroku上运行)升级到不久前使用资产管道。
我将所有文件移动到app / assets中,每个文件都列在app / assets / javascript / application.js中并公开删除。
当我推送到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片段也无法正常工作 <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>
答案 0 :(得分:1)
你试试这个吗?
//= require jquery-1.7.2.min.js
//= require jquery-ui-1.8.22.custom.min.js
//= require_tree .
//= require_self
您的帖子中似乎已删除require_self