我有一台服务器,要在其上托管两个具有相同域名但不同的角度应用程序路线,例如:-www.zeeshan.in/CorporateRetail/Admin此网址将打开我的管理应用,www.zeeshan.in/CorporateRetail/Distributor,此网址将打开我的分销商应用程序。
对于我使用的项目版本(ng build --prod --base-href / CorporateRetail / Admin / --deploy-url / adminbuild /)和(ng build --prod --base-href / CorporateRetail / Distributor /- -deploy-url / distbuild /)。上面的屏幕截图是其中一个有角度的应用程序的文件夹结构,与第二个应用程序的文件夹结构相同
app.js
var express = require('express');
var app= module.exports=express();
const path = require('path');
app.all('/CorporateRetail/Admin/*',function(req,res){
return res.sendFile(path.join(__dirname, 'adminapp/index.html'));
});
app.use('/adminbuild/*',(req,res) => {
res.sendFile(path.join(__dirname,'adminapp/CorporateRetail/Admin/'+req.originalUrl.split('/')[2]));
});
app.all('/CorporateRetail/Distributor/*',function(req,res){
return res.sendFile(path.join(__dirname, 'distributorapp/index.html'));
});
app.use('/distbuild/*',(req,res) ={
res.sendFile(path.join(__dirname,'distributorapp/CorporateRetail/Distributor/'+
req.originalUrl.split('/')[2]));
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`appAdmin listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
在代码中使用相对于BASE href的URL来访问资产,例如图像:
<img src="assets/image.png">
[构建时,将--base-href
设置为index.html
所在的URL。不要使用--deploy-url
。您不需要它,我认为它没有任何作用或任何有用的作用。有一些与--deploy-url
相关的Angular问题。
ng build --prod --base-href=/CorporateRetail/Admin/
将应用程序部署到Express应用程序的子目录,例如./adminapp
。该子文件夹包含index.html
,assets/
等。>
使用express.static
至serve static content。
app.use('/CorporateRetail/Admin', express.static(path.join(__dirname, 'adminapp')));
当URL以
./adminapp
开头时,这告诉Express从/CorporateRetail/Admin
子目录提供静态内容。
如果将Angular路由器与默认的PathLocationStrategy一起使用,则还需要将Express配置为serve index.html
when no document is found。