我正在创建一个React&与Webpack捆绑在一起的react-router v4应用程序.我正在使用Webpack创建
async split points到我的应用程序的响应路由器路由的异步加载包.
假设我的应用程序名为“myapp”,当我将其部署到我的服务器时,我的静态资产需要通过以下方式提供:
/myapp/static/<assetName>
为了在部署到服务器时异步捆绑加载工作,我的Webpack输出配置如下:
output: {
path: path.resolve(__dirname, "build"),
publicPath: "/myapp/static/",
chunkFilename: "[name].[chunkhash].bundle.js",
filename: "[name].[chunkhash].bundle.js"
}
在我的devServer部分,我有这个:
devServer: {
historyApiFallback: true,
inline: true,
port: 4000,
publicPath: "/myapp" // this is so my app is served from http://locahost:4000/myapp
}
我实际部署到我的服务器时没有任何问题,但是当我运行webpack-dev-server并访问时:
http://localhost:4000/myapp
…提供了html,但HtmlWebpackPlugin为我的包生成的所有URL都是/ myapp / static /< bundleName>因此无法获取,因为在/ mpapp /< bundleName>上提供了捆绑包.
如何配置webpack-dev-server以重写/ myapp / static /< bundleName> to / myapp /< bundleName>以便它将路由到实际在/ myapp下本地提供的捆绑包?
我已经尝试了各种重写和代理指令,但我似乎打破了应用程序 – 我确信有一种简单的方法我可以忽略它.
非常感谢.
最佳答案 尝试为historyApiFallback设置索引,如下所示:
historyApiFallback: {
index: "/myapp/static/"
},
有关更多信息,请参阅webpack和connect-history-api-fallback文档:
https://webpack.js.org/configuration/dev-server/#devserver-historyapifallback
https://github.com/bripkens/connect-history-api-fallback