我已经开发了一个asp.net core 2.0 MVC应用程序,并添加了一个Angular 6前端应用程序,它们都存在于同一个项目结构中。asp.net core应用程序作为客户端Angular 6应用程序的API。
我一直在同时开发它们,并在Startup.cs文件中包含以下代码段以便在两个应用程序同时运行时进行开发:
Angular应用程序的项目结构可以在ClientApp中找到。
我现在希望将此项目部署到IIS。所以我正在离开开发环境,因此我知道不会运行以下代码行:
当我通过Visual Studio发布项目并将其移动到inetpub文件夹中,就像我为其他应用程序做的那样,它没有提供我在Angular 6应用程序中开发的页面。当我尝试访问例如/ Home之类的页面时,我会收到500个内部服务器错误。
我推测这是因为我需要构建Angular应用程序(我可以通过
更新#1:
在Startup.cs文件中,我使app.UseDeveloperExceptionPage()在生产模式下可用。
与500个内部服务器错误页面不同,我得到了异常: SPA默认页面中间件无法返回默认页面'/ index.html',因为未找到该页面,并且没有其他中间件处理请求。 我还注意到,在发布后,ClientApp / dist文件夹不存在。我手动构建了ClientApp并将其添加到inetpub中的应用程序中。现在,我在控制台中收到错误:
我一直在同时开发它们,并在Startup.cs文件中包含以下代码段以便在两个应用程序同时运行时进行开发:
ConfigureServices
services.AddSpaStaticFiles(configuration => {
configuration.RootPath = "ClientApp/dist";
});
Configure
app.UseSpa(spa => {
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment()) {
spa.UseAngularCliServer(npmScript: "start");
}
});
Angular应用程序的项目结构可以在ClientApp中找到。
我现在希望将此项目部署到IIS。所以我正在离开开发环境,因此我知道不会运行以下代码行:
spa.UseAngularCliServer(npmScript: "start");
。当我通过Visual Studio发布项目并将其移动到inetpub文件夹中,就像我为其他应用程序做的那样,它没有提供我在Angular 6应用程序中开发的页面。当我尝试访问例如/ Home之类的页面时,我会收到500个内部服务器错误。
我推测这是因为我需要构建Angular应用程序(我可以通过
ng build --prod
完成),并将编译后的JS文件添加到HTML页面中。但是我不确定如何去做。如果有人有任何相关网页的链接,那将非常感激。或者如果您能提供任何见解,那将非常有帮助。更新#1:
在Startup.cs文件中,我使app.UseDeveloperExceptionPage()在生产模式下可用。
与500个内部服务器错误页面不同,我得到了异常: SPA默认页面中间件无法返回默认页面'/ index.html',因为未找到该页面,并且没有其他中间件处理请求。 我还注意到,在发布后,ClientApp / dist文件夹不存在。我手动构建了ClientApp并将其添加到inetpub中的应用程序中。现在,我在控制台中收到错误:
runtime.a66f828dca56eeb90e02.js:1 Uncaught SyntaxError: Unexpected token <
polyfills.7a0e6866a34e280f48e7.js:1 Uncaught SyntaxError: Unexpected token <
Request:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8080/styles.169e0a841442606822c8.css".
scripts.ee7fed27c36eaa5fa8a9.js:1 Uncaught SyntaxError: Unexpected token <
main.befe6f4d3c1275f2e1b3.js:1 Uncaught SyntaxError: Unexpected token <
index.html
所在的输出文件夹,并将你的网站根目录设置为该位置。 - theMayer