Rails 6.1.7.3应用访问新页面报Webpacker清单缺失错误及解决
Webpacker::Manifest::MissingEntryError 问题解决及排查指南
已确认的有效解决方案
- Node版本过高导致与Webpacker 5.x兼容性冲突,降级Node版本后可正常运行。
问题详情
使用Rails 6.1.7.3和Ruby 3.0.6p216开发时,访问自定义URL触发以下错误:
Webpacker::Manifest::MissingEntryError in Pages#home
Webpacker无法在C:/Users/...路径下找到application.js。可能原因:
除非你使用webpack -w或webpack-dev-server,否则需要在对应环境的webpacker.yml文件中将compile值设置为true;
webpack尚未重新运行以同步更新;
Webpacker的config/webpacker.yml文件配置有误;
你的webpack配置未生成manifest文件;
当前manifest包含:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %><%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
项目依赖配置package.json:
{ "name": "first-project", "private": true, "dependencies": { "@rails/actioncable": "^6.0.0", "@rails/activestorage": "^6.0.0", "@rails/ujs": "^6.0.0", "@rails/webpacker": "5.4.4", "turbolinks": "^5.2.0", "webpack": "4.46.0", "webpack-cli": "3.3.12" }, "version": "0.1.0", "devDependencies": { "webpack-dev-server": "3" } }
此前已尝试重新安装部分gem、更换Ruby/Rails版本、重新安装webpacker,未解决问题。
额外排查方向
若降级Node版本后问题仍存在,可尝试以下操作:
- 检查
config/webpacker.yml中对应环境(如development)的compile字段是否设为true - 执行
rails webpacker:compile命令手动生成manifest文件 - 确认
app/javascript/packs/application.js文件存在且内容完整 - 删除
public/packs目录清除缓存后重新编译 - 重新安装Node依赖:运行
yarn install或npm install
内容的提问来源于stack exchange,提问作者Shoah
相关产品推荐
相关产品推荐

