我正在尝试使用asp.net core 2.1在angular7上设置通用角度。预渲染可以在本地版本上完美运行,但不会将代码添加到生产中的服务器上的页面源中,而不会出现错误或日志。
由于缺少日志,我怀疑这是因为未加载/启动服务器模块,但我不知道为什么。这是应该添加到Web配置中的东西吗?
我正在使用Windows共享plesk服务器,该服务器支持node.js和IIS节点。这是我的Startup.cs的片段
app.UseSpa(spa =>
{
spa.Options.StartupTimeout = new System.TimeSpan(0, 0, 1000);
spa.Options.SourcePath = "ClientApp";
spa.UseSpaPrerendering(options =>
{
options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.js";
options.BootModuleBuilder = env.IsDevelopment() ? new
AngularCliBuilder(npmScript: "build:ssr") : null;
options.ExcludeUrls = new[] { "/sockjs-node" };
});
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
答案 0 :(得分:0)
我相信您正在滥用预渲染的中间件。
关于预渲染:表示可以按需构建单页应用程序(SPA)以便进行预渲染的功能。仅在开发时使用。在生产中,SPA应该已经在发布期间建立。
您应该将这段代码隐藏在后面:
env.IsDevelopment()
了解更多here
答案 1 :(得分:0)
我最终意识到我在Startup.cs中有app.UseStaticFiles();
行和app.UseSpaStaticFiles
行。删除app.UseStaticFiles();
解决了此问题。但是,我仍然不确定为什么这不会在本地版本上引起问题。