新建Rails 5.1项目使用Webpack时application.js无法正常加载
Rails 5.1 Webpacker 404加载错误的解决办法
我之前也碰到过一模一样的问题,给你几个实用的排查和解决步骤:
先确认Webpacker的实时编译服务是否在运行
Rails 5.1的Webpacker在开发环境下默认依赖webpack-dev-server来实时编译JS资产,如果这个服务没启动,服务器找不到编译后的文件就会报404。解决步骤很直接:- 先关掉当前运行的Rails服务器
- 打开新的终端窗口,进入项目目录,运行命令:
./bin/webpack-dev-server - 回到原来的终端,重新启动Rails服务器:
rails s - 刷新页面,应该就能正常加载Webpacker打包的JS文件了
嫌开两个终端麻烦?直接编译静态文件到本地
如果你不想额外维护一个webpack-dev-server进程,可以直接把Webpacker的资产编译到public/packs目录下,运行这个命令:bundle exec rails webpacker:compile编译完成后再启动Rails服务器就能访问了,唯一的小缺点是每次修改
app/javascript里的代码后,都需要重新运行这个命令才能看到更新。快速核对默认配置是否正常
虽然你说没修改过默认文件,但可以快速扫两个关键配置:- 确认
config/webpacker.yml里的public_output_path是packs(默认就是这个值,一般不会出问题) - 检查
config/environments/development.rb里是否开启了静态文件服务:config.public_file_server.enabled = true,默认是开启的,如果被意外修改了改回来就行
- 确认
最后确认标签引用没问题
你用的<%= javascript_pack_tag 'application' %>是完全正确的,app/javascript/packs/application.js本身就是Webpacker默认的入口文件,这部分不用调整。
内容的提问来源于stack exchange,提问作者Blankman
相关产品推荐
相关产品推荐

