我遇到此错误,当我使用angularjs在IIS中发布我的应用程序时,请帮助我,请帮助我如何使用.net core 2.1和angularjs解决此错误。在Visual Studio中正常工作时,我在IIS中遇到此错误
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/dist";
});
});
app.UseSpa(spa =>
{
// To learn more about options for serving an Angular SPA from ASP.NET Core,
// see https://go.microsoft.com/fwlink/?linkid=864501
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
答案 0 :(得分:5)
npm脚本“开始”意味着,.Net Core试图调用ng serve
来
在开发环境中运行角度模块。所以当你主持
您在Azure /本地或任何其他服务器上的应用程序,请确保您
尚未在开发环境中部署您的应用程序。
"ASPNETCORE_ENVIRONMENT": "Development"
更改为
"ASPNETCORE_ENVIRONMENT": "Production"
。 Refer here
在生产模式下部署后仍然面对其他任何问题 错误。尝试以下操作找出错误。注释掉
// if(env.IsDevelopment()) // { // spa.UseAngularCliServer(npmScript:“ start”); //}
,然后将应用程序重新部署到“开发”模式。您将收到真正的错误消息。
可以在ServiceManifest.xml文件中更改变量。默认情况下未设置。
答案 1 :(得分:1)
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAuthentication();
app.UseSpaStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
app.UseSpa(spa =>
{
// To learn more about options for serving an Angular SPA from ASP.NET Core,
// see https://go.microsoft.com/fwlink/?linkid=864501
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
}
答案 2 :(得分:1)
请注意错误**npm** is not recognized as an inernal or external command
的相关部分。
我在全新的Windows和VS安装上遇到此错误。事实证明,尽管在VS安装程序中选择了node.js开发工具,但实际上并没有安装node,因此npm也没有安装。
您可以通过在命令提示符下运行node -v
来进行测试。
通过安装节点为我解决了。请注意,如果没有依赖项,您可能还需要执行npm install
才能在node_modules
中下载依赖项。