我有一个具有多个端点的node.js API,它运行良好。我创建了一个单独的vue.js客户端应用程序,以使用创建的API处理数据。这也很好。我遇到了一个问题,我需要这些应用程序在同一端口上运行,以便第三方代理系统可以同时访问这两个应用程序。
我已经看到了将dist目录复制到节点服务器上的一种方法,但是由于生产环境需要此方法,因此我需要一种在构建节点API时也可以动态构建前端的方法。
除了添加要在现有节点服务器上运行的客户端应用程序之外,还有生产级别的替代方法吗?任何建议或帮助将不胜感激!
更新:我已将其添加到路由器文件中,并将客户端和服务器纳入一个项目
const path = require('path');
const router = express.Router();
router.use(express.static(path.join(__dirname, '../client/dist')));
//production mode
if(process.env.NODE_ENV === 'production') {
router.use(express.static(path.join(__dirname, '../client/dist')));
//
router.get('/test', (req, res) => {
res.sendFile(path.join(__dirname = '../client/dist/index.html'));
})
}
//build mode
router.get('/test', (req, res) => {
res.sendFile(path.join(__dirname+'../client/dist/index.html'));
})
答案 0 :(得分:0)
您可以使用快速静态路由公开使用vue-cli构建的dist目录。此目录应包含您的构建资产以及index.html
app.use('/app', express.static(path.join(__dirname, '../client/dist'));
但是,由于您的应用程序不在根目录中,因此您现在必须在vue.config.js中添加基本URL。此后重建应用程序。
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/app/' : '',
...
...
...
}
现在,您的vue应用应该可以在
上使用/app/index.html