首页 > 解决方案 > 尝试使用引导程序中的 javascript 文件时出现 404 Not found 错误

问题描述

我是 Rails 新手,我正在尝试使用 start bootstrap 建立一个网站,特别是在此处找到的登录页面。我已经将 css 和 html 导入到我的 rails 项目中,但是我很难使用 javascript。脚本文件在app/my_app/javascript/packs.他们的样式中,我可以使用启动服务器app/assets/stylesheets成功地引用其中包含的图像,它在我的浏览器中加载相关的样式和图像,尽管没有任何 javascript。控制台中的具体错误为<img src> assets/stylesheets/...</img src>.rails s

localhost/:468 GET http://localhost:3000/packs/scripts.js 404(未找到)

我像这样引用 index.html.erb 页面底部的脚本

<script src> packs/scripts.js </script>. 我也试过javascript/packs/scripts.js

我的 applications.html.erb 看起来像这样

<html>
  <head>
    <title>TestApp</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>
     <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    <%= stylesheet_link_tag 'styles', media: 'all', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <%= yield %>
  </body>
</html>

<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>标记仅出现一次,并且仅在该文件中出现。

我的 applications.js 文件是这个

//= require bootstrap.min
//= require jquery.easing.min
//= require jquery.fittext
//= require wow.min
//= require scripts
//= require jquery_ujs
//= require turbolinks
//= require_tree

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("packs/scripts")

所以rails/webpacker好像找不到javascript/...路径下的脚本,也不知道为什么。我已经搜索并尝试了很多解决方案,但都无济于事。任何有关该问题的帮助或建议将不胜感激。谢谢

标签: javascriptruby-on-railswebpackwebpacker

解决方案


如果你有一个来自 Webpacker 的 script.js 想要在 Rails 中加载,你可以使用<%= javascript_pack_tag 'scripts', 'data-turbolinks-track': 'reload' %>.

javascript_pack_tag是一个帮助方法,它会自动为你生成脚本标签和 url。

此外,由于您使用的是 turbolinks 并添加了'data-turbolinks-track': 'reload',因此您可以javascript_pack_tag<head>.


推荐阅读