我是Web开发的新手,在部署Web应用程序时遇到问题。
上下文:
我有一个可运行的网络应用,其中包括:
1)前端:用vue.js编写,我用npm run serve
运行
2)后端:用Django编写。我曾经用python manage.py runserver
跑
由于该应用程序涉及GPU计算,因此我必须在部门服务器上运行它。为了查看它,我使用SSH端口转发将前端和后端转发到本地主机(以便可以从本地主机:16006访问它)。可以。
现在,我需要将该网站公开发布。我的部门为我设置了Ubuntu 18.04.2虚拟机(使用ufw作为其防火墙软件,并允许所有出站连接以及入站ssh,http和https):
layout2im.cs.ubc.ca
问题
我将代码拉到该VM并安装了相关的依赖项/软件包。对于前端,我像这样配置vue.config.js:
const BundleTracker = require("webpack-bundle-tracker");
module.exports = {
publicPath: '',
outputDir: './dist/',
chainWebpack: config => {
config.optimization
.splitChunks(false)
config
.plugin('BundleTracker')
.use(BundleTracker, [{filename: '../frontend/webpack-stats.json'}])
config.resolve.alias
.set('__STATIC__', 'static')
config.devServer
.public('https://layout2im.cs.ubc.ca:80')
.host('0.0.0.0')
.port(80)
.hotOnly(true)
.watchOptions({poll: 1000})
.https(true)
.headers({"Access-Control-Allow-Origin": ["\*"]})
.open(true)
}
};
然后我npm run serve
表示应用程序在
App running at:
- Local: https://localhost:1024
- Network: https://layout2im.cs.ubc.ca:80/
但是我无法在浏览器中打开https://layout2im.cs.ubc.ca:80/。 (我尝试使用端口443,但也不起作用)
无法访问此网站
layout2im.cs.ubc.ca拒绝连接。
(我不知道这是否相关,但我也尝试过npm run build
,而dist/index.html
包含:
<noscript><strong>
We're sorry but frontend doesn't work properly without JavaScript enabled. Please enable it to continue.
</strong></noscript>
)
我什至不确定自己是否走对了。如果有人可以指出我的错误以及如何正确使用虚拟机来部署此网站,那将是非常不错的。 (例如,我需要Docker吗?)