我刚刚在rails项目上做过ruby。我创建了一个名为' animals'以及索引操作的视图(index.html.erb)。我不想包含“应用程序”#39; 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包含以下行
<%= stylesheet_link_tag 'animals', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'animals', 'data-turbolinks-track' => true %>
当我检查服务器生成的源代码html代码时,我看到jquery scipts没有被包含在页面中。它只是animal.js文件。
<head>
<meta name="viewport" content="width=device-width, initial- scale=1.0">
<title>Rails Omniauth</title>
<meta name="description" content="Rails Omniauth">
<link rel="stylesheet" media="all" href="/assets/animals.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b5433a495991b7852b855.css?body=1" data-turbolinks-track="true">
<script src="/assets/animals.self-1d93d37bf2f830ac42e82eb68e3bb0040ece5d23533a05bf77f7407fd59178d3.js?body=1" data-turbolinks-track="true"></script>
</head>
为什么包含这些脚本的任何建议?
感谢。
答案 0 :(得分:1)
我认为您的问题可能是您有两个名称相同的文件(但扩展名不同)。由于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'
答案 1 :(得分:0)
您可以删除animals.coffee文件,并且application.js文件中可能需要animals.js才能在项目中使用您的js代码。