我正在尝试用asp.net Core2.1在angular7上设置angular universal。预渲染在本地构建上工作得很好,但不会向生产环境中的服务器上的页面源代码添加代码,而不会出现错误或日志。
由于缺少日志,我怀疑这是因为服务器模块没有加载/启动,但我不知道原因。这是应该添加到web配置中的内容吗?
我使用的是支持node.js和IIS Node的windows共享plesk服务器。这是我的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");
}
});发布于 2019-02-12 06:59:12
我最终意识到我在Startup.cs中有app.UseStaticFiles();和app.UseSpaStaticFiles这一行。删除app.UseStaticFiles();解决了此问题。然而,我仍然不确定为什么这不会在本地构建上造成问题。
发布于 2019-02-08 05:34:40
我相信你误用了预渲染中间件。
关于预渲染:表示按需构建单页面应用程序(SPA)的能力,以便可以进行预渲染。这只打算在开发时使用。在生产环境中,应该已经在发布期间构建了SPA。
你应该把这段代码隐藏起来:
env.IsDevelopment()阅读更多here
https://stackoverflow.com/questions/54571613
复制相似问题