运行 ASP.NET 虚拟目录下的样板模板

Running ASP.NET Boilerplate template under virtual directory

我有一个由 ASP.NET Boilerplate 创建的 Angular 模板。我发布成功了,在一个网站下的IIS上顺利运行ning了。但是,我的客户希望将它 运行 放在虚拟目录下,而不是自己的网站。

我更新了 appconfig.json 如下:

{
  "remoteServiceBaseUrl": "http://localhost:8080/Training",
  "appBaseUrl": "http://localhost:8080/Training"
}

并对appSettings.json中的App做了同样的事情:

"App": {
    "ServerRootAddress": "http://localhost:8080/Training/",
    "ClientRootAddress": "http://localhost:8080/Training/",
    "CorsOrigins": "http://localhost:8080/Training"
}

出于某种原因,当我 运行 应用程序时,出现以下错误,它无法加载某些 CSS 和 JavaScript 包:

我在wwwroot文件夹中手动更改了index.html,并在开头添加了http://localhost:8080/Training/每个 href。通过这样做,所有这些错误都消失了,现在我留下了这个错误:

GET http://localhost:8080/assets/appconfig.json 404 (Not Found)

我认为与AppPreBootstrap.ts文件有关,它从appconfig.json文件中读取.

在发布应用程序之前,我是否必须在某处对应用程序设置进行任何更改才能消除上述问题?

确保appRootUrlAppPreBootstrap.ts中以'/'结尾:

private static getApplicationConfig(appRootUrl: string, callback: () => void) {
    appRootUrl += appRootUrl.endsWith('/') ? '' : '/'; // Add this line
    return abp.ajax({
        url: appRootUrl + 'assets/' + environment.appConfig,
        // ...
    }).done(result => {
        // ...
    });
}