我创建了我的第一个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进行生产?
答案 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')
})