vue去除#号tomcat配置

问题:项目过程中,需要微信分享得功能,但是签名失原因出在vue原始带得#号,所以把#去掉,下面配置(这里只是tomcat):

范例:vue-cli项目使用路由,tomcat作为服务器,项目文件夹名myvue

1.npm run build 打包生成的build文件夹中内容拷贝到myvue文件夹如下图:

2.myvue文件夹下新建WEB-INF/web.xml 其中添加404错误跳转路径如下图:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/web-app_2_5.xsd"
         id="scplatform" version="2.5">
  <display-name>/</display-name>
  <error-page>
    <error-code>404</error-code>
    <location>/index.html</location>
  </error-page>
</web-app>

  3.vue-cli项目config/index.js 配置assetsPublicPath:'/myvue/' 项目包名称

4.vue-cli项目src/router/index.js 配置mode:'history',base:'/myvue/'

以上vue-cli配置与tomcat部署都ok后,启动tomcat服务器,访问路径项目名myvue,ok可以正确访问了,这里后面不要加index.html,

扩展一下,是不是每次大包项目都要手动添加WEB-INF/web.xml呢。答案不是的,解决方案如下:

1、我的打包配置

new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.build.assetsSubDirectory,
        ignore: ['.*']
      },
      {
        from: path.resolve(__dirname, '../WEB-INF'),
        to: 'WEB-INF',
        ignore: ['.*']
      }
    ])

  在项目中添加与static文件夹同级别的WEB-INF文件,如下:

  文件名为:webpack.prod.conf.js ,添加内容如下:

至此,即可解决如上问题。

posted @ 2019-07-23 11:06  FallenLunatic  阅读(2117)  评论(0编辑  收藏  举报