iis 我们可以在同一端口下托管两个Angular 项目吗

7gs2gvoe  于 2023-06-23  发布在  Angular
关注(0)|答案(3)|浏览(125)

我有两个angular项目在angular2中开发。一个是公共门户,另一个是管理员。如果我以http://myaddress.com的形式托管主门户,那么我需要托管管理员在它下; URL应该是http://myaddress.com/admin。必须在IIS中进行测试。

bsxbgnwa

bsxbgnwa1#

您只需要将这两个项目托管在其各自的目录(需要IIS配置),然后使用base-href选项构建/部署应用程序:

ng build --prod --base-href=/admin // admin app
ng build --prod // public app
ny6fqffe

ny6fqffe2#

我的回答主要是理论上的。
1.创建一个admin项目的npm包(类似ng-packagr的东西会有帮助)。有一种格式可以公开您想要在此项目之外访问的所有模块。你可以在Google上找到关于这方面的详细信息。例如index.ts
1.将其作为dependency包含在主项目的package.json中。
1.尝试在MainProject中创建路由,并在路由中使用延迟加载以获得更好的性能。类似于:

export const AppRoutes: Routes = [
    {
        path: '',
        component: 'IAmINMainProjec',
        canActivate: [TrafficGuard],
        pathMatch: 'full'
       // and what not..
    },
    {
        path: 'admin',
         loadChildren:
                    './modules/widget-wrappers/#AdminWrapperModule',
        canActivate: [AuthGuard]
    },

AdminWrapperModule

@NgModule({
    imports: [
        CommonModule,
        AdminModule,
    ]
})
export class AdminWrapperModule{}
  • 以上代码仅供参考:D*

更新

在我的项目中,我们有几个模块(确切地说是4个),类似于您的情况下的admin,我们意识到构建4个项目非常耗时(每个项目的构建时间约为7分钟)。所以我们最终实现了nrwl。这个工具帮助我们把所有4个项目都拉到了我们的主项目下。这有助于减少时间,因为我们不再需要在实际部署代码之前构建两个项目(一个Admin和另一个MainProject)。如果你真的需要的话,看看吧。如果你需要更多的项目隔离,那么不要选择Nrwl

fjaof16o

fjaof16o3#

它为我工作,只有一个运行在本地,另一个运行在本地网络Image of running both simultaneously
使用以下命令在本地网络中运行的命令:
ng服务--主机0.0.0.0
可以使用本地IP地址访问,例如:
http://192.168.0.152:4200
可以在终端窗口中使用以下命令访问该命令:
ipconfig
在linux/mac上:
ifconfig
另一个你正在运行的
ng serve
可以使用http://localhost:4200访问

相关问题