javascript - ReactJs动态路由代码分割

标签 javascript reactjs webpack react-router

我有这样的路由器设置

<Router path="/" component={Application}>
 <Route path="/login" getComponent={(location, cb)=>{

      require.ensure([], function (require) {
                        cb(null, require('./components/Login').default);
                      });
}} />

 <Route path="/article/:articleid" getComponent={(location,cb)=>{
     require.ensure([], function (require) {
                        cb(null, require('./components/Article').default);
                      });
}}


</Router>

现在,主页 / 加载,/login 页面加载 /0.chunk.js 处所需的 block ,但是 /article/some-article 页面尝试从未找到的 /article/1.chunk.js 加载所需的 block 1.chunk.js

Webpack 在一个位置 /0.chunk.js/1.chunk.js 生成所有 block 。有人可以帮助为什么 /article/:articleid 在位置 /article/ 而不是 / 寻找 block 以及如何纠正这个问题。 ?

最佳答案

听起来您遇到了相对路径问题。您应该确保 output.publicPath正在生成绝对路径。

module.exports = {
  output: {
    chunkFilename: '[id].chunk.js',
    publicPath: '/'
  }
}

关于javascript - ReactJs动态路由代码分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41900468/

相关文章:

javascript - 如果执行器未解决,ES6 JavaScript Promise 是否可以通过其他方式解决?

javascript - 根据 browserslist 配置检查 JS 文件?

javascript - React 创建常量文件

javascript - 通过作为 Prop 传递的方法从状态数组中删除元素

javascript - Webpack HotModuleReplacement css

javascript - 让 CSS 加载器输出 ES 模块?

javascript - 如何解决使用 Webpack 构建的 `require` 别名,用于 React 单元测试?

javascript - 在页面中间居中动态 Div 的最佳方式

javascript - 在 showMessage() 之后添加延迟

javascript - 在react中点击链接时处理异常