我一直关注Michael Hartl的Ruby on Rails教程,我在第8章中加载JavaScript依赖项时遇到问题:https://www.railstutorial.org/book/basic_login
CSS依赖项加载正常(我正在使用引导程序),并且在浏览器中检查页面时,头部中有多个<link rel="stylesheet...>
标记。但是,只有一个脚本标记,用于加载已编译的application.js
文件。
有趣的是,即使我在js清单文件中出错,例如需要一个不存在的文件,我在浏览器中渲染页面时也不会出现任何错误。
我尝试在一个新的应用程序中复制这个,但我无法。只需在Gemfile bundle install
中访问所需的宝石并访问除默认rails之外的任何页面,就会将application.js清单文件中列出的所有依赖项包含在<script src=..>
中的单独<head>
标记中}。
我正在使用帮助程序将资产作为layouts/application.html.erb
文件的一部分加载:
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
application.js
清单文件:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
我的RoR和Ruby版本分别为5.1和2.3.2
js清单文件为app/assets/javascripts/application.js
答案 0 :(得分:1)
我通过将主应用程序的相关部分移动到一个新的rails应用程序来解决了这个问题,该应用程序加载了JS依赖项。我希望这对我来说是一个配置问题。
更具体地说,我将Gemfile,db /,config / routes.rb和app /(config /除外)中的所有内容移动到了一个全新的rails应用程序中。一切正常后,我用新应用程序覆盖了我的主应用程序的app /目录。