- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 prerender.io 中间件为正确的 SEO 设置我的 MEAN 堆栈应用程序。在本地,一切都很好。在生产中,nada。该应用程序托管在 OpenShift 上。我正在为 preRenderToken 和 preRenderServiceUrl 使用环境变量(服务 URL 仅适用于开发人员,并指向另一个本地 Node 服务器)。
在 /server/config/local.env.js
中:
(function()
{
'use strict';
module.exports = Env();
function Env()
{
var IEnvironmentVariables = {
// Prerender.io
PRERENDER_SERVICE_URL: 'http://localhost:3000/',
PRERENDER_TOKEN: 'my prerender.io token',
};
return IEnvironmentVariables;
}
})();
在/server/config/environment/index.js
中:
// Prerender.io
// I've definitely got both of these set locally and the token set on OpenShift
prerenderServiceUrl: process.env.PRERENDER_SERVICE_URL || process.env.OPENSHIFT_PRERENDER_SERVICE_URL || 'http://localhost:3000/',
prerenderToken: process.env.PRERENDER_TOKEN || process.env.OPENSHIFT_PRERENDER_TOKEN || 'prerender-token'
文档头部包含以下meta
标签:
<meta name="fragment" content="!">
<meta name="description" content="{{description}}">
<meta name="keywords" content="{{keywords}}">
这些绑定(bind)表达式在 Angular 的 $rootScope
上设置如下:
(function()
{
'use strict';
angular.module('myApp')
.run(['$rootScope', '$state', Run]);
function Run($rootScope, $state)
{
$rootScope.$on('$stateChangeSuccess', function (event, current, previous)
{
// Meta tags
$rootScope.description = $state.current.description || 'default-description';
$rootScope.keywords = $state.current.keywords ?
$state.current.keywords
.toString()
.split(',')
.join(' ') : 'default-keywords
});
}
})();
最后,在每个 $state
配置中,像这样:
(function()
{
'use strict';
angular.module('myApp')
.config(['$stateProvider', Config]);
function Config($stateProvider)
{
$stateProvider
.state('main', {
url: '/',
templateUrl: 'app/main/main.html',
controller: 'MainController',
controllerAs: 'vm',
description: 'my site description',
keywords: ['array', 'of', 'keywords']
});
}
})();
访问 http://localhost:9000/?_escaped_fragment=
(或具有该查询字符串的任何其他网站页面)会生成预呈现页面,并在元标记中使用正确的值。在生产中,我可以访问 http://www.dancakes.com/?_escaped_fragment=
但该页面未预呈现(如果您想验证,这是实际的网站 URL) .
我试过将 app.use(prerender . . .)
语句放在不同的位置,每次我最终得到的东西都可以在本地工作,部分或不在全部投入生产。
最佳答案
所以,似乎你需要在片段 ?_escaped_fragment_=
之后加下划线
关于angularjs - Prerender.io 无法在生产环境中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215238/
以下代码位于 Login.aspx 文件内。之前的代码运行起来非常流畅。但是,在添加 ajax ModalPopup 扩展程序后,发生了此错误。 当用户单击超链接“忘记密码”时,我试图创建一个弹出窗口
我遵循了以下指南: 角度: $locationProvider.html5Mode(true); 在 html 中,添加此元 header : 配置 Apache : Rewrite
我对 Java Web 完全陌生,但我的问题是: 1) 如何在 prerender() 函数中向 JSF 页面 (webuijsf) 添加新控件?2)如何更改已使用视觉设计器添加的元素的位置?也在 p
关于设置的信息: 我已经在我自己的服务器 Ubuntu 16 上成功安装了 prerender ( https://github.com/prerender/prerender)。 这是我的 .hta
我正在尝试确定是否可以在母版页 PreRender 事件中读取脚本标记。我有 CSS 链接,但到目前为止脚本标签还没有成功。 这会获取 CSS 链接: foreach (var c in HeadEl
所以我正在尝试设置 prerender.io对于我的带有 ExpressJS 后端的 AngularJS 应用程序,遵循此 tutorial .我完全按照指示做了,唯一的区别是我启用了 HTML5mo
我正在通过 react-rails(1.0.0pre) 对 React.js 和 Rails 进行试验,并且在预呈现依赖于窗口大小的响应元素时遇到了一些麻烦。每当我创建一个使用窗口的组件时,我都会收到
我正在尝试使用 prerender.io 中间件为正确的 SEO 设置我的 MEAN 堆栈应用程序。在本地,一切都很好。在生产中,nada。该应用程序托管在 OpenShift 上。我正在为 preR
我最近尝试做 Prerender,需要一些启发。我尝试预呈现我的一些页面,但加载失败。 在 chrome://net-internals/#prerender 中它会显示不支持的方案。 我在我的 ht
我正在尝试 chrome 中的预呈现功能,但是当我检查网络时,我可以看到任何链接的请求都被取消了。 我正在使用以下语法: 我在 http://prerender-test.appspot.com/
最近我注意到,Page_PreRender 事件没有被触发。如 protected override void OnPreRender使用 - 一切都很好。 AutoWire 已启用并且相同的代码在另
所以我使用带有“基线”布局的 vuetify(来自文档:https://vuetifyjs.com/en/examples/layouts/baseline)。我将一页设置为预渲染: config
您知道在 PreRender 事件上向页面添加控件有什么缺点吗? 请不要回答“取决于你的情况”我是在一般情况下说的:-) 最佳答案 PreRender事件发生在控件事件之后,因此控件不能使用任何事件。
在页面 A 上,我动态插入一个指向页面 B 的预渲染标记: . 我想知道是否 prerender当完成加载页面 B 时触发一个事件,我可以从页面 A 上的 javascript 访问该页面。 如果浏览
谁能告诉我为什么我会在下面的跟踪中收到错误? “SetFocus 只能在 PreRender 之前和期间调用。” 错误消息表明必须在 PreRender 之前或期间调用“SetFocus”,并且根据跟
我正在使用 prerender.io 为 Angular 单页应用程序进行服务器端渲染。 添加了 ngMeta 依赖并动态添加了标题和描述元标记。 添加了包含所有 URL 的 sitemap.xml
我正在尝试在我的 ASP.NET 应用程序中实现 Prerender.io。我配置了所有必需的必要步骤,包括 1) 在 Index.html 的头部 2) 配置模块 3)
我用带有 expressJS 后端的 AngularJS 制作了一个应用程序。现在我想让它可抓取,我找到了 prerender.io .我认为我所做的一切都是正确的,但由于某种原因我在预渲染器仪表板中
在让 Google 抓取工具解析我们的 AngularJS 网站时出现一些问题后,我们使用 Prerender 来提供抓取工具友好版本的页面。 此方法运行良好 - 除了网站站长工具表明我们的网站速度因
我正在尝试在服务器上运行构建。但是使用预渲染,会出现以下错误。在桌面版的ubuntu和macOS上,没有这个问题,只是服务器端的问题。我在不同的服务器上试过。 95% emittingError: F
我是一名优秀的程序员,十分优秀!