Ruby on Rails资产管道无法正常工作

我刚刚在rails项目上做过ruby。 我已经创建了一个名为“animals”的控制器和一个用于索引操作的视图(index.html.erb)。 我不想包含’应用程序’javascript文件。

所以我创造了animals.js

该文件的内容是

//= require jquery //= require jquery_ujs //= require turbolinks //= require bootstrap-sprockets //= animals.coffee 

我还将animals.js和animals.css添加到asset.rb

 Rails.application.config.assets.precompile += %w( animals.js ) Rails.application.config.assets.precompile += %w( animals.css ) 

我的index.html.erb包含以下行

  true %>  true %> 

当我检查服务器生成的源html代码时,我看到jquery scipts没有包含在页面中。 它只是animal.js文件。

   Rails Omniauth     

有关为什么包含这些脚本的任何建议?

谢谢。

我认为您的问题可能是您有两个具有相同名称的文件(但扩展名不同)。 由于Rails资产助手同等对待coffescript和js文件,因此这是不明确的:

 <%= javascript_include_tag 'animals', 'data-turbolinks-track' => true %> 

它应该加载哪个文件? 我猜它是按字母顺序排在第一位的,那就是animals.coffee

要解决此问题,请将链轮清单移至animals.coffee并删除animals.js文件。

 # app/assets/animals.coffee #= require jquery #= require jquery_ujs #= require turbolinks #= require bootstrap-sprockets #= require_self alert 'Hello World'