如何将vue.config.js定义为生产?

时间:2019-03-07 07:39:14

标签: javascript vue.js vue-router

我创建了我的第一个SPA Vue项目。它在本地工作,但不能在服务器上工作。我用node.js编写服务器,并从vue-front进行了生产构建(称为“ dist”)并将其放置到服务器的根目录。

它可以正常工作,但是当我刷新浏览器或手动导航到页面时,我从服务器收到错误yum install project plugin1 plugin2。在开发阶段,我只需要vue.config.js

unknown endpoint

在router.js中,我设置了基础:process.env.BASE_URL,它是我创建应用程序时默认使用的。我读到某个地方,如今应该使用变量module.exports = { devServer: { proxy: { "/api/*": { target: "http://localhost:3003", secure: false } } } }

publicPath

那我该如何使用vue.config.js进行生产?

1 个答案:

答案 0 :(得分:0)

您的快递服务器必须将路由(您的客户路由)重定向到index.html

原生Node.js示例:

 const http = require('http')
 const fs = require('fs')
 const httpPort = 80

 http.createServer((req, res) => {
   fs.readFile('index.htm', 'utf-8', (err, content) => {
     if (err) {
       console.log('We cannot open "index.htm" file.')
     }

     res.writeHead(200, {
       'Content-Type': 'text/html; charset=utf-8'
     })

     res.end(content)
   })
 }).listen(httpPort, () => {
   console.log('Server listening on: http://localhost:%s', httpPort)
 })

或者您可以使用connect-history-api-fallback中间件来表达https://github.com/bripkens/connect-history-api-fallback#usage

或者您也可以像

这样手动操作
// Server index.html page when request is made
const clientRoutes = ['/', '/home', 'login', 'workspace']
app.get(clientRoutes, function (req, res, next) {
    res.sendfile('./public/index.html')
  })