Rails 5.X迁移至7.1.3版本时Rails Admin出现JavaScript语法错误的问题求助
Rails 5.X迁移至7.1.3版本时Rails Admin出现JavaScript语法错误的问题求助
我正在把一个Ruby on Rails项目从5.X版本迁移到7.1.3版本,现在遇到了Rails Admin的JavaScript问题。打开浏览器控制台后,出现了以下类型的错误:
turbo.self-35ed69897…8b6888b535c.js:470 Uncaught SyntaxError: Unexpected token 'export' filter-box.self-8d0c…705a1f3c23d6da.js:1 Uncaught SyntaxError: Cannot use import statement outside a module filtering-multiselec…ee8f6f0f1831f8.js:1 Uncaught SyntaxError: Cannot use import statement outside a module filtering-select.sel…b3f57e45795b57.js:1 Uncaught SyntaxError: Cannot use import statement outside a module remote-form.self-daf…4986cee62b7a29.js:1 Uncaught SyntaxError: Cannot use import statement outside a module nested-form-hooks.se…8c57e71c987be1.js:1 Uncaught SyntaxError: Cannot use import statement outside a module i18n.self-762663bbe8…e1ce77141eccd.js:18 Uncaught SyntaxError: Unexpected token 'export' widgets.self-7e1b0c9…fd01d572b034d0.js:1 Uncaught SyntaxError: Cannot use import statement outside a module ui.self-16ae4a4a2e7c…62c6108f3fd38f.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
我在config文件夹中创建了一个名为importmap.rails_admin.rb的文件,内容如下:
pin "rails_admin", preload: true pin "rails_admin/src/rails_admin/base", to: "https://ga.jspm.io/npm:rails_admin@3.1.2/src/rails_admin/base.js" pin "@hotwired/turbo", to: "https://ga.jspm.io/npm:@hotwired/turbo@7.3.0/dist/turbo.es2017-esm.js" pin "@hotwired/turbo-rails", to: "https://ga.jspm.io/npm:@hotwired/turbo-rails@7.3.0/app/javascript/turbo/index.js" pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.8/dist/esm/popper.js" pin "@rails/actioncable/src", to: "https://ga.jspm.io/npm:@rails/actioncable@7.1.3/src/index.js" pin "@rails/ujs", to: "https://ga.jspm.io/npm:@rails/ujs@6.1.7/lib/assets/compiled/rails-ujs.js" pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@5.3.3/dist/js/bootstrap.esm.js" pin "flatpickr", to: "https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js" pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.7.1/dist/jquery.js" pin "jquery-ui/", to: "https://ga.jspm.io/npm:jquery-ui@1.13.2/"
同时,我还有一个importmap.rb文件,内容如下:
# Pin npm packages by running ./bin/importmap pin "application" pin "@hotwired/turbo-rails", to: "turbo.min.js" pin "@hotwired/stimulus", to: "stimulus.min.js" pin "@hotwired/stimulus-loading", to: "stimulus-loading.js" pin_all_from "app/javascript/controllers", under: "controllers"
以下是application.html.erb中head标签的内容:
<head> <title><%= @hospital.short_name %><%= t('meta.hospital_title') %></title> <meta name="description" content="<%= t('meta.description') %>"> <meta name="keywords" content=""> <meta property="og:title" content="<%= @hospital.short_name %><%= t('meta.hospital_title') %>"/> <meta property="og:image" content="<%= image_url 'merendre_ca_logo.jpg' %>"/> <meta property="og:site_name" content="<%= t('meta.title') %>"/> <meta property="og:description" content="<%= t('meta.description') %>"/> <meta name="robots" content="noindex,nofollow"> <%= csrf_meta_tags %> <link rel="apple-touch-icon" href="<%= image_url('touch-icon.png') %>"/> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" name="viewport"> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= render 'layouts/google_tag_manager' %> <script src="<%= javascript_url 'application' %>" data-turbolinks-track="reload"></script> <%= javascript_importmap_tags %> <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %> </head>
我有点搞不清楚哪里出错了,之前没怎么接触过Rails 7.x版本。我也查阅了一些文档,但还是很困惑,不知道该怎么解决,期待你的建议。
备注:内容来源于stack exchange,提问作者Denis Morin
相关产品推荐
相关产品推荐

