NutzCN Logo
问答 vue 使用npm run build 之后,怎样部署到正式环境?使用nginx ?
发布于 3030天前 作者 hedan806 6984 次浏览 复制 上一个帖子 下一个帖子
标签:

RT:使用vue-cli初始化的项目,webpack打包后,怎样部署到生产环境?使用nginx还是其他的?tomcat不行吧。

16 回复

正规一点就nginx,不然就塞到war里面扔tomcat去

来自炫酷的 NutzCN

@wendal 是直接把dist 和 index.html 打成war包,然后扔tomcat去吗?

仅dist里面的东西!!! 外加一个web.xml, tomcat就认为是合法的javaee包了.

@wendal 好的。 dist里面只有js和样式文件。入口文件是自己写吗? 我试试,谢谢!

dist里面有index.html啊

dist目录下就2个东西, index.html和static文件夹

@wendal 恩恩,可能是我打包时把他们分开了,我的index.html在外面。待会不行再麻烦您~

@wendal 请问一下,你们nutzWK 4.0 使用VUE的后台登录怎么实现的呢?
我这样写的,在dev环境可以,好像build之后就不行了。

router.beforeEach((transition) => {
    transition.to.router.app.$Loading.start();
    if (isLogin()) {
      transition.next();
    } else {
      let redirect = encodeURIComponent(transition.to.path);
    }
  });

App.vue中的代码是:

<components :is="showView"></components>
*********************
components: {
      'mana': Mana,
      'login': Login,
      Navbar,
      Sidebar
    }

@wendal 登录界面,登录成功后,跳转不到主界面,刷新后,还是停留在登录界面。
actions.js 如下:

export const localLogin = (store, userInfo) => {
  api.localLogin(userInfo).then(response => {
    var json = response.json();
    if (json.code != 0) {
      getCaptchaUrl(store);
      return showMsg(store, json.msg || '登录失败')
    }
    const token = response.data.token;
    saveCookie('token', token);
    getUserInfo(store);
    store.dispatch(types.LOGIN_SUCCESS, {token: token});
    showMsg(store, '登录成功,欢迎光临!', 'success');
    window.router.go({path: '/'});
    window.location.reload();
  }, response => {
    getCaptchaUrl(store)
    showMsg(store, response.data.error_msg || '登录失败')
  })
}

@hedan806

又router又reload,搞毛线

    window.router.go({path: '/'});
    window.location.reload();

来自炫酷的 NutzCN

@wendal 呃....就是不会啊~ 我在App.vue中还有这样的代码:

ready(){
      if (isLogin()) {
        this.showView = 'mana'
      } else {
        this.showView = 'login'
      }
    }

router.js 如下:

router.map({
    '/': {
      component: require('./components/PageHome.vue')
    },
    '/login': {
      auth: false,
      name: 'login',
      component: require('./components/Login/index.vue')
    }
});

去掉

window.location.reload();

SPA有啥好reload.

不过,我觉得不行的原因, 更大可能性是没有登录成功.

@wendal 恩,好的。我再排查一下。谢谢~

..........我还在为那个path问题纠结呢,还没做到登录那一步...你方便的话公开出来参考参考..

@hedan806

var template = require('ejs!./index.ejs');
var data = {base: ''};
template(data);

老是报错,按文档来的啊。。。
https://github.com/ampedandwired/html-webpack-plugin
https://github.com/okonet/ejs-loader

添加回复
请先登陆
回到顶部