在具有nodejs的一台AWS服务器上部署两个有角度的应用程序,index.html中的基本href面临问题

问题描述 投票:0回答:1

enter image description here

我有一台服务器,要在其上托管两个具有相同域名但不同的角度应用程序路线,例如:-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.');
 });
node.js angular angular-ui-router amazon-elastic-beanstalk angular-routing
1个回答
0
投票

在代码中使用相对于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.htmlassets/等。>

使用express.staticserve 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

© www.soinside.com 2019 - 2024. All rights reserved.