Symfony 4 中Webpack Encore生成资源路径错误导致404如何解决
问题原因
你当前配置的公开路径为绝对路径/build,会强制从站点根目录加载资源,与你需要的相对当前页面路径./build不匹配,因此触发404错误。
解决步骤
- 修改webpack.config.js配置
将原有配置项
.setPublicPath('/build')
修改为:
.setPublicPath('./build') // 新增该行配置,兼容manifest文件生成规则,避免路径拼接异常 .setManifestKeyPrefix('build/')
- 调整Symfony WebpackEncoreBundle配置(若使用Symfony框架)
打开config/packages/webpack_encore.yaml,修改参数如下:
webpack_encore: public_path: './build' strict_mode: false
- 重新编译资源并清理缓存
依次执行以下命令:
# 重新编译前端资源 yarn encore dev # 若使用npm则执行 # npm run dev # 清理Symfony项目缓存,避免Twig读取旧配置 php bin/console cache:clear
- 验证配置生效
编译完成后打开public/build/entrypoints.json,检查app入口对应的js、css资源路径是否为./build/开头即可。
内容的提问来源于stack exchange,提问作者P'tit Serpent
相关产品推荐
相关产品推荐

