javascript - publicPath 不起作用,但 __webpack_public_path__ 起作用
问题描述
我正在构建一个单一的 SPA 应用程序,并且面临部署问题。我将每个应用程序部署在一个子目录(app-bar-mf、products-mf 等)中,并将 root-config(主应用程序)部署在基础上。
在本地工作时,每个应用程序都通过它自己的服务器(localhost:9000、localhost:9001 等)提供服务,因此这里没有子目录。
当我尝试部署时,不使用 publicPath,并且通过“/img/foo.png”而不是“/products-mf/img/foo.png”提供资产。
如果我__webpack_public_path__
在 main.js 中设置,一切都会按预期进行。
有什么线索吗?
vue.config.js
module.exports = {
publicPath: process.env.NODE_ENV === "production" ? "/products-mf/" : "/",
configureWebpack: () => {
const conf = {
externals: [
"vue",
"vuex",
"vue-router",
"vue-i18n"
]
};
if (process.env.NODE_ENV === "production") {
conf.output = { "products.js" };
}
return conf;
},
filenameHashing: false,
transpileDependencies: ["vuetify"]
};
解决方案
在 single-spa 项目中,我们使用systemjs-webpack-interop来__webpack_public_path__
根据托管微前端的 URL 动态设置。这对于数百个单水疗应用程序来说效果很好,因此您可以考虑使用相同的逻辑。这个插件包含在create-single-spa生成的 Vue 项目中。
推荐阅读
- amazon-web-services - 使用 terraform 部署 aws 工作区的问题
- mysql - 如何在 MYSQL 中结束 LOAD DATA INFILE 语句,错误 1261
- json - jq过滤器根据数组值忽略select语句中的值
- java - C++中接口的匿名实现
- python - 从外部类获取变量
- python - 当我从 heroku 启动我的应用程序时出现应用程序错误,从日志中我发现它是 Procfile
- snowflake-cloud-data-platform - 连接不同模式/数据库中的表
- python - 初学者类型错误:“数据”是 Vocab 的无效关键字参数
- mongodb - 将字符串字段转换为 MongoDB 中的编码字符串
- ios - XCode 升级不允许 ios < 13 但我将其设置为 11+