如何在Symfonys WebPack Encore中使用自定义OutputPath ?



我正在做一个使用Symfony 6.0的项目,并在项目中添加了WebPack Encore,遵循Symfony文档。

webpack.config.js中,我使用setOutputPathsetPublicPath设置自定义资产目录,而不是默认的public/build文件夹:

Encore
// directory where compiled assets will be stored
.setOutputPath('public/assets/build/')
// public path used by the web server to access the output path
.setPublicPath('/assets/build')
// only needed for CDN's or sub-directory deploy
//.setManifestKeyPrefix('build/')

这很好。当运行npm run dev时,文件现在在public/assets/build而不是默认的public/build文件夹中创建。

但是,以这种方式更新配置后,分支方法{{ encore_entry_link_tags('app') }}{{ encore_entry_script_tags('app') }}不再生成输出。生成的HTML中不添加任何脚本和样式信息。

那么,如何正确设置Encore以使用默认public/build以外的文件夹呢?

好吧,我自己找到了答案…:-)我将把它留在这里,以防其他人遇到同样的问题:

必须同时更新config/packages/webpack_encore.yaml文件:

webpack_encore:
# The path where Encore is building the assets - i.e. Encore.setOutputPath()
output_path: '%kernel.project_dir%/public/assets/build'
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/assets/build/manifest.json'

虽然我真的不明白为什么有必要在三个不同的位置设置相同的配置,但这是可行的方法。

相关内容

  • 没有找到相关文章

最新更新