我将NodeJS / ExpressJS用作服务器,但我想将Angular 7用作路由器。我已经安装了Angular路由脚本,并且似乎可以正常工作,因为当我将登录组件设置为加载路径”时,它将在example.com上加载该组件,并且如果我将路由器路径从”更改为“登录”,组件不再加载到example.com
但是,当我在.com /之后添加任何内容时,我的server.js脚本会引发“无法获取/”错误。
我将Angular路由器设置为在URL为example.com/login时加载登录组件,但是我的错误是“无法获取/ login”。
我相信我的快速服务器脚本正在使用/ login并将其添加到目录目标(如dist / ngtb / login)中,而无论路径是example.com/what_Ever_This_Path_Is都是需要始终路由到dist / ngtb的,这样我Angular应用程序已读取并初始化,并且可以进行路由。
const express = require('express');
const http = require('http');
const https = require('https');
const path = require('path');
const fs = require('fs');
const app = express();
const apps = express();
const port = process.hasUncaughtExceptionCaptureCallback.PORT || 80;
const ports = process.hasUncaughtExceptionCaptureCallback.PORT || 443;
var privateKey = fs.readFileSync('private_key.key', 'utf8');
var certificate = fs.readFileSync('ssl.cer', 'utf8');
var credentials = {
key: privateKey,
cert: certificate
};
apps.use(express.static(__dirname + '/dist/ngtb'));
app.get('*', (req, res) => res.redirect('https://' + req.headers.host + req.url));
apps.get('/*', (req, res) => res.sendFile(path.join(__dirname + '/dist/ngtb')));
const serverhttp = http.createServer(app);
const serverhttps = https.createServer(credentials, apps);
serverhttp.listen(port);
serverhttps.listen(ports);
答案 0 :(得分:0)
我不确定我是否真的了解您的问题,但是尝试引用dist文件夹中的index.html。
答案 1 :(得分:0)
.use和.get行中使用的路径应为“ dist / ngtb /”,而不是“ dist / ngtb”。当在URL路径中添加任何内容时,缺少的斜杠会导致无法获取错误。现在,角形布线可以完美地工作了。