问题标签 [prerender]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 使您的 Angular 项目 SEO 友好的 2015 年最新方法
我建立了一个大型 angularJS 网站,并通过部分加载 json 文件使其成为多语言。我的网站充满了这些字符串:
我不确定如何让他们对 SEO 友好。我在互联网上找到了很多解决方案,但也有很多人表示不再需要它,因为 Google 和 Bing 可以扫描 Angular 项目。
所以我将我的项目设置为 html5 = true,但它创建了一个<base>
丢失的错误。所以我实现了一个<base href="/">
,但我的项目后来被部署到一个子文件夹 /staging/ 所以所有链接都被破坏了。(我的开发和生活环境有不同的基础)
我不喜欢依赖像 prerender.io 这样的第三方
让您的 Angular 项目 SEO 友好的最新方法是什么。还有一个本地主机解决方案吗?Grunt 是否可以预渲染我的所有页面,以便我可以在构建脚本中实现它?
angularjs - prerender.io 是否支持 cookie?
我正在尝试使用本地安装的 prerender.io 来生成 Angular.js webapp 的静态快照。
webapp 的后端使用会话 cookie,该 cookie 在第一个请求中设置,并且在所有后续请求中都需要 - 如果未发送,则请求失败(它们被后端拒绝)。在普通浏览器中使用 webapp 时,这可以正常工作。
在 prerender.js 中,除了那些调用后端的请求之外,所有请求都有效——那些请求失败,因为显然 phantomjs 不发送 cookie。
prerender.js 不支持(或禁用)cookie 是真的吗?如果是这样:我该怎么做才能启用它们?据我所知,Phantomjs 支持 cookie...
iis - prerender.io IIS 配置
我正在尝试在我的 ASP.NET 应用程序中实现 Prerender.io。我配置了所有必需的步骤,包括
1)<meta name="fragment" content="!">
在 Index.html 的头部
2) 配置模块
3)添加自定义标题
4) 定义的重写规则
5) 我在 IIS 上安装了应用程序请求路由模块,我在其中启用了代理。这是图像的样子: ARR
现在,当我向http://localhost:2525?_escaped_fragment_=发出请求时,经过所有这些配置
它只是给我一个空白页。我不确定我错过了什么,任何人都可以建议。
angularjs - 带有预渲染的 Angular.js
我试图在端口 3000 上本地使用 Prerender,但phantom.js有时会崩溃,并且 css 链接给了我许多 504 http 错误。我不知道如何设置链接,绝对的还是相对的?但在这两种方式中,都给了我同样的错误。
我的应用程序在端口 8000 上运行,我已将其添加到 html 文件中:
我正在使用这样的服务,这是正确的方法吗?
seo - 使用 prerender.io 和 ReactJS 进行 SEO
我意识到我使用 react-router 的 ReactJS 应用程序没有任何外部链接。搜索引擎无法识别该站点有很多链接内容。Prerender.io 似乎是一个很好的解决方案,但我无法让它为我的 ReactJS 应用程序工作。
prerender.io 可以与 ReactJS 一起使用吗?如果没有,是否有另一种好方法可以在不进行所有渲染服务器端的情况下改善我的网站的 SEO?
编辑:经过进一步挖掘,我意识到这里的问题是 react-router 默认使用“#”,而不是“#!”。是否可以使用“#!”使 react-router 工作?
html - 如何预取和预渲染整个图像文件
我有一堆图像存储在 XYZ.com/images/page1
这些图像都非常相似,例如 image1.png、image2.png 等。所以 URL 是 XYZ.com/images/page1/image1.png
有没有办法为页面预取/预渲染文件中的所有图像?
angularjs - 为什么 Facebook 机器人/爬虫总是点击我的 AngularJS SPA 的根页面?
在我目前正在开发的网站上,我们进行了以下设置:
- Angular JS 前端
- IIS 上的 ASP.NET MVC Web API 后端
- Prerender.io 缓存服务
在 web.config 中使用以下重写规则:
我们在 index.html 中有 <meta name="fragment" content="!">,AngularJS 在启用 HTML5 pushstate 的情况下运行,后端有一个 HttpModule 可以接收具有 _escaped_fragment 或适当的请求UserAgent 并呈现 Prerender.io 内容。
使用常规搜索引擎爬虫,这可以按预期工作 - 在 prerender.io 中,我们可以看到爬虫请求正确的 url 并获得适当的缓存内容。
但是,对于 Facebook,无论我使用什么 URL 在https://developers.facebook.com/tools/debug/og/object/prerender.io上进行测试,都会要求提供根页面(即https://example .com/ )
现在,我已经通过将 Facebook 从 IIS 重写中排除来修复它
但是,我不知道为什么 Google 能够通过我当前的设置访问正确的页面,而 Facebook 却不能?我在某处读到 301 和 302 的处理方式可能不同,这可能是使用重写而不是重定向的情况吗?
angularjs - AngularJs 应用程序 + 使用 S3 预渲染
我有一个单页应用程序,服务器端在 node.JS 上。AngularJS 资源托管在 S3 Bucket 上。我有一个 nginx 服务器层,它代理基于节点的 api 和来自 S3 Bucket 的静态内容。我想预渲染 AngularJS 应用程序以将静态内容提供给搜索引擎。我已将 nginx.conf 更改为使用prerender.io,但 AngularJS 应用程序未完全加载。当我尝试使用“_escaped_fragment_=”手动测试预渲染片段时,“nv-view”中的任何内容都没有加载。以下是 nginx.conf 片段:
d3.js - 在服务器上预渲染 dc.js,在客户端维护交互事件
标题说明了一切:我使用 dc.js 和 node.js 在服务器上预渲染图表并将 SVG 返回给客户端。SVG 如下所示:https ://gist.github.com/anonymous/e2f7d237bcc784cfe97d
在客户端,我只是将返回的 SVG 写入 div
结果看起来还不错,唯一的问题是当我悬停数据点时“轨迹线”没有出现。它应该如下所示:http ://s2.postimg.org/jqs37yird/3837933.png
我可以在 SVG 中看到蓝点和灰色虚线在那里,但它们不会在鼠标悬停时设置为可见。我想这与 dc.js 的 mouseover 事件侦听器有关,该侦听器未绑定到 dc_plot 中的 SVG(在客户端添加了 dc.js、d3.js 和 crossfilter.js)。当然我可以编写自己的事件监听器,但也许有更简单的解决方案?
javascript - 在 nginx 中使用带代理的预渲染
我正在尝试使用prerender.io来获取 angularjs 页面的快照。目前我有一个用于 Web 应用程序的 NodeJS 实例,并且nginx
反向代理将请求从端口重定向80
到4000
.
根据 prerender nginx 手册(https://gist.github.com/thoop/8165802),我可以将搜索引擎机器人请求转发到 prerender url,但因为我已经有 NodeJS 应用程序的代理,我不知道怎么做我预渲染try_files
指令。
我的问题是,如何同时使用 NodeJS 应用程序代理和 prerender 指令?