Rails 5引导Javascript标记不工作

Rails 5引导Javascript标记不工作,javascript,ruby-on-rails,webpack,bootstrap-4,asset-pipeline,Javascript,Ruby On Rails,Webpack,Bootstrap 4,Asset Pipeline,我对bootstrap4和rails5javascript标记有一些奇怪的问题。当我开始这个项目时,一切似乎都很好,我没有对任何js进行任何更改,但突然我的可折叠navbar下拉菜单停止工作,我可以在控制台中看到这些错误: GET http://localhost:3000/packs/js/application-48ce69a491950ec17b29.js net::ERR_ABORTED 404 (Not Found) GET http://localhost:3000/packs/j

我对bootstrap4和rails5javascript标记有一些奇怪的问题。当我开始这个项目时,一切似乎都很好,我没有对任何js进行任何更改,但突然我的可折叠navbar下拉菜单停止工作,我可以在控制台中看到这些错误:

GET http://localhost:3000/packs/js/application-48ce69a491950ec17b29.js net::ERR_ABORTED 404 (Not Found)

GET http://localhost:3000/packs/js/application-48ce69a491950ec17b29.js net::ERR_ABORTED 404 (Not Found)
我正在使用Rails5.2.4.1和Ruby 2.6.3以及Bootstrap4

在my application.html.erb中,我在正文末尾有以下javascript标记:

<%= javascript_include_tag 'application' %>

<%= javascript_pack_tag 'application' %>
和我的javascript/packs/application.js:

//= require rails-ujs
//= require_tree .
import "bootstrap";
这是我的config/webpack/environment.js

const { environment } = require('@rails/webpacker')

const webpack = require('webpack')

// Preventing Babel from transpiling NodeModules packages
environment.loaders.delete('nodeModules');

// Bootstrap 4 has a dependency over jQuery & Popper.js:
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery',
    Popper: ['popper.js', 'default']
  })
)

module.exports = environment
我使用的是一种新的方法,但我还不确定每件事是如何相互作用的。下面是它为安全措施生成的GEM文件:

source 'https://rubygems.org'
ruby '2.6.3'

gem 'bootsnap', require: false
gem 'devise'
gem 'jbuilder', '~> 2.0'
gem 'pg', '~> 0.21'
gem 'puma'
gem 'rails', '5.2.4.1'
gem 'redis'

gem 'autoprefixer-rails'
gem 'font-awesome-sass', '~> 5.12.0'
gem 'sassc-rails'
gem 'simple_form'
gem 'uglifier'
gem 'webpacker'

group :development do
  gem 'web-console', '>= 3.3.0'
end

group :development, :test do
  gem 'pry-byebug'
  gem 'pry-rails'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'dotenv-rails'
end
我是否忘了包含可能影响此操作的任何其他文件?希望有人能在这里发现一个简单的问题,但如果我遗漏了什么,很乐意添加更多信息。这真让我恼火,哈哈


提前谢谢

让javascript同时包含标签“application”和javascript包装标签“application”不是个好主意

如果您使用webpacker,则不需要app/assets/javascripts文件夹

您需要将app/javascript/packs/application.js更改为如下内容:

require("@rails/ujs").start();
require("@rails/activestorage").start();
require("channels");
require("jquery");

import "bootstrap";

好的,我试过了,但还是不起作用。我已经更改了javascript/packs/application.js并尝试了它,保留了javascript\u pack\u标记并删除了javascript\u include\u标记,反之亦然,两次安装和重新启动服务器都是通过纱线和捆绑包,但是这两种尝试都没有成功:/我还应该遵循其他步骤吗?您需要添加这些库:添加引导jquery popper.jsAhhh太棒了!这已经奏效了。不过,控制台中只显示了一个错误。我该如何解决这个问题?未捕获错误:在webpackMissingModule应用程序中找不到模块“@rails/ujs”。js:1在模块../app/javascript/packs/application.js应用程序中。js:1在webpack\u需要引导:19在引导:83在引导:83 webpackMissingModule@application.js:1./app/javascript/packs/application.js@application.js:1webpack_require@bootstrap:19匿名@bootstrap:83匿名@bootstrap:83也许requirerails-ujs.start不带@遗憾的是,这不起作用。尝试添加rails ujs,但无效。尝试去除纱线并重新添加,但仍然无效。
require("@rails/ujs").start();
require("@rails/activestorage").start();
require("channels");
require("jquery");

import "bootstrap";