我有以下清单:
// 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
并且所有的javascript工作正常。因此row_shading
,long_or_short_details
切换,date-picker
和default_on_first_input_field
都按预期工作。
我想改为使用require_tree,如:
//= require_tree
//= require_self
当我这样做并重启我的服务器时,只有date-picker
工作
其他人 - row_shading
,default_on_first_field
,long_or_short_details
不起作用,除非我在清单中单独列出它们,即使我在尝试仅使用{{1}时在标题中列出它们}:
require_tree
我认为这可能是一个订购问题,所以我尝试了
<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/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/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>
并且首先使用//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require default_on_first_input_field
//= require_tree
//= require_self
和jquery
进行更好的排序,如:
jquery-ui
但是 <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/default_on_first_input_field.js?body=1" type="text/javascript"></script>
<script src="/assets/date-picker.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>
的javascript,default_on_first_input_field
long_or_short_details`并没有做任何事情?
日期选择器看起来像这样:
row_shading and
而row_shading(例如)看起来像:
$(function() {
$( "#datepicker" ).datepicker();
});
$(function(){
var dateInput = $("#datepicker");
var format = 'yy-mm-dd';
dateInput.datepicker({dateFormat: format});
dateInput.datepicker('setDate', $.datepicker.parseDate(format, dateInput.val()));
});
答案 0 :(得分:1)
尝试
//= require_tree .
我认为你错过了.
答案 1 :(得分:1)
当您拥有依赖项时,包含JS文件的顺序非常重要。当您使用require_tree
所需的订单时,文件将包含在按字母顺序中。即通常你想首先包含jquery和jquery-ui,这是你在手动包含文件时所做的事情。
如果你真的想使用require_tree,请确保文件名是满足所有依赖关系的,所以如果default_on_first_input_field依赖于jquery,那么将default_on_first_input_field重命名为m_default_on_first_input_field以使其工作。
但这是解决这个问题的非常复杂的方法,所以理想情况下你应该通过单独要求所有文件来手动列出依赖关系。