Bootstrap 3.1.1 Javascript无法在我的Rails应用程序中运行

Bootstrap 3.1.1 Javascript not working in my rails app

我将bootstrap css和js文件放在各自的目录app / assets / stylesheets app / assets / javascripts

并修改了application.js和application.css以分别包含引导文件

application.css:

1
2
3
4
5
/*
 *= require_self
 *= require_tree .
 *= require bootstrap.min
 */

application.js:

1
2
3
4
5
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min
//= require_tree .

css可以很好地加载,而javascript则不能。因此,诸如下拉列表之类的功能将不起作用。

我错过了什么

编辑答复!:

我的低声望代表不允许我回答自己的问题,所以我将其发布在这里:

通过删除

1
//= require_tree .

来自application.js,而不是指定bootstrap.min.js文件解决了该问题。

1
2
3
4
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min

我制作了一个带有静态主页的快速测试Rails应用程序,并再次安装了引导文件,并遇到了同样的问题。我最初以为我的javascripts目录中的其他文件与bootstrap.js和bootstrap.min.js冲突,但是它们并没有冲突,因为我能够在新的准系统应用程序上复制此问题。


  • 如果您已经将上述引导文件放在app / assests / [javascripts / stylesheets]目录中,则可能不应该在application。文件中同时使用两个引导文件,因为这些目录中的所有内容将会自动被包含在application。文件中的require_tree .行中。这是"较新的" rails资产管道,它将采用所有必需的js / css并将其最小化为单个js文件和单个css文件。 require_tree .指令要求有问题的asset / [javascripts / stylesheets]目录的"树"中的所有文件。

  • 根据1的解释,您可能会发现不应从应用程序中删除require_tree .行。文件

  • 只需将require_tree .行添加回两个应用程序中。文件,然后确保两个引导文件都在各自的资产/目录中。

    干杯!