首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用angular universal的ASP.Net Core spa预渲染可以在本地运行,但不能在服务器上运行

使用angular universal的ASP.Net Core spa预渲染可以在本地运行,但不能在服务器上运行
EN

Stack Overflow用户
提问于 2019-02-07 18:49:48
回答 2查看 654关注 0票数 1

我正在尝试用asp.net Core2.1在angular7上设置angular universal。预渲染在本地构建上工作得很好,但不会向生产环境中的服务器上的页面源代码添加代码,而不会出现错误或日志。

由于缺少日志,我怀疑这是因为服务器模块没有加载/启动,但我不知道原因。这是应该添加到web配置中的内容吗?

我使用的是支持node.js和IIS Node的windows共享plesk服务器。这是我的Startup.cs中的一个片段

代码语言:javascript
运行
复制
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");
    }
});
EN

回答 2

Stack Overflow用户

发布于 2019-02-12 06:59:12

我最终意识到我在Startup.cs中有app.UseStaticFiles();app.UseSpaStaticFiles这一行。删除app.UseStaticFiles();解决了此问题。然而,我仍然不确定为什么这不会在本地构建上造成问题。

票数 1
EN

Stack Overflow用户

发布于 2019-02-08 05:34:40

我相信你误用了预渲染中间件。

关于预渲染:表示按需构建单页面应用程序(SPA)的能力,以便可以进行预渲染。这只打算在开发时使用。在生产环境中,应该已经在发布期间构建了SPA。

你应该把这段代码隐藏起来:

代码语言:javascript
运行
复制
env.IsDevelopment()

阅读更多here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54571613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档