Vue路由器和webpack - 历史模式config localhost

时间:2018-02-19 10:47:36

标签: webpack vuejs2 vue-router vue-cli

基本上,我正在使用带有webpack模板的Vue cli,我需要在vue路由器中使用历史模式,但我正在使用params进行路由。

我读了这篇文档:https://router.vuejs.org/en/essentials/history-mode.html 我也看了这个帖子:Problems with vue router (history mode) in development server Vue.js - “Cannot GET /config”

所以我从:

更改webpack.dev.conf.js
historyApiFallback: {
      rewrites: [
        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
      ],
    }

historyApiFallback: true

现在,当我尝试访问带有参数的页面时,我得到一个空白页面。任何线索?

1 个答案:

答案 0 :(得分:1)

更新:

我在Vue论坛中公开了这个问题,@ LinusBorg帮助我了解vue-router和历史模式会发生什么:

https://forum.vuejs.org/t/vue-router-and-webpack-history-mode-config-localhost/27880/12

基本上,他建议“不应该在webpack / config文件上更改任何内容(我[LinusBorg]维护此模板)”。当我改为相对路径时,它就坏了。

由于我需要将项目交付给子文件夹,他建议采取一些步骤:

  
      如果没有绝对路径,
  1. 历史模式无法真正发挥作用。直接访问子路径时,aset文件的相应路径将中断。   这不是你能够解决的问题。
  2.   
  3. 如果您想从子文件夹中提供服务,您必须通过设置base1选项让路由器知道这一点。
  4.   
  5. 您还在配置中将write子文件夹设置为assetsPublicPath(对于build和dev,除非您创建路由器的基础   根据环境切换。)
  6.   

然后,带有params的页面仍然被破坏,因为服务器(甚至localhost)需要按照此处的说明进行配置:https://router.vuejs.org/en/essentials/history-mode.html