prerender.io的问题总是呈现客户端路由列表的默认角度路由

 温暖不醒的aprildRi-1965 发布于 2023-01-11 10:00

只是想说我真的很喜欢prerender.io,但我现在遇到了问题,我想知道是否我做错了什么,有更多经验的人可以帮助我.

我在prerender.io网站上遇到了同样的问题,并且我在Debian Linux机器箱中设置了prerender用于本地执行.

我的新站点是ASP.Net MVC和angular的混合,其中angular表示服务器上MVC路由中的工作流(或内容类别).

一类内容的示例是:

http://[somesitename]/PublicContent/#!/news

http://[somesitename]/PublicContent/#!/welcome

MVC服务器端路由是:

http://[somesitename]/PublicContent

#!/ news#!/ welcome是角度应用程序路由,欢迎也是默认路由.

当我将URL发送到prerender.io服务或我的本地实例时:

http://service.prerender.io/http://[somesitename]/PublicContent/#!/news

prerender服务只呈现:

http://[somesitename]/PublicContent

而#忽略了客户端路线#!

因此,对于每个MVC路由的所有页面,我只是获取多次呈现的默认路由...

这是prerender.io的错误吗?或者我没有没有正确配置的东西?

我有:


在我的所有页面的头部,如果那将是重要的.

1 个回答
  • 在prerender.io与那些人交谈,看来我对Asp.Net MVC中间件进行了修改,它正在删除?_escpaed_fragment _ = /完全是对此代码的不正确修改,这本身是不正确的(基本代码)删除?_escpaed_fragment _ = /并将其替换为,我修改了代码以删除?_escpaed_fragment _ = /并将其替换为#!).

    期望prerender.io服务?_escpaed_fragment _ = /存在于URL中,如果找到它,它将用#替换它!在调用您的网站以缓存页面之前.它不期望找到#!,如果它存在,它将无法正确处理URL.

    因此,如果您使用的是Asp.Net MVC中间件,则应注释掉PrerenderModule.cs中的以下代码:

            // Remove the _escaped_fragment_ from the URL if it exists!
            var escapedFull = "?" + _Escaped_Fragment + "=/";
            if (url.Contains(escapedFull))
            {
                url = url.Replace(escapedFull, string.Empty);
            }
    

    2023-01-11 10:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有