我们在Angular 4 +内部有一个exposed应用Node
Express app,因此作为普通节点应用启动。有点像:node index.js
在本地计算机上完成此功能非常棒。角度应用程序从/client
目录提供:
app.use(express.static(__dirname + "/client"));
将此项目部署到某个服务器时,express perfectly responses使用client/index.html
文件:
<html>
<head>
<title>Angular 4 app</title>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="public/styles.css">
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err) {
console.error(err);
});
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>
<h1>Loading...</h1>
</my-app>
<script type="text/javascript" src="public/jquery.connectingLine.js"></script>
</body>
</html>
该应用的模板取自here基于these tutorials。
端口转发:
nginx可以使用以下规则执行反向代理:
Angular4AndNodeApp
应用已在PORT 8080
启动(参考部署流程第7点)调试信息:
client/index.html
文件 - 200确定 client/index.html
档案有<script>
&amp; <link>
标记错误地发送到https://angular4AppDomain.com/而非https://angular4AppDomain.com/8080/ - 404未找到 cd app
cd client
npm i
npm run tsc:w
cd ..
PORT=8080 pm2 start index.js --name=Angular4AndNodeApp
根据建议<base href="/">
is set,我们正在访问virtual path。但是,我们没有点击http://example.com/someapp/index.html,而是点击了http://example.com/PORT/index.html。
在此项目中,所有Angular 4组件都 404 s。
可能会发生这种情况可能是因为应用程序未正确编译。
我们如何确保所有这些静态资产都有<script>
&amp;错误地点击https://angular4AppDomain.com/的<link>
代码,而是点击https://angular4AppDomain.com/8080/?
答案 0 :(得分:0)
这是一个快速演示:
git clone
此示例回购使用angular-cli https://github.com/sunilbandla/msal-angular-sample cd
进入文件夹。ng build --base-href /PORT/
liter-server
并从项目的根目录运行lite-server
命令