Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Prerender.io不缓存我的页面_Angularjs_Node.js_Express_Seo_Prerender - Fatal编程技术网

Angularjs Prerender.io不缓存我的页面

Angularjs Prerender.io不缓存我的页面,angularjs,node.js,express,seo,prerender,Angularjs,Node.js,Express,Seo,Prerender,因此,我试图为我的AngularJS应用程序设置一个ExpressJS后端,如下所示。我完全按照指示做了,唯一的区别是我启用了HTML5模式。我已将元(name=“fragment”content=“!”)包含在我的index.jade中,并将prerender令牌添加到我的server.js文件中(使用包),但不知怎的,我的页面似乎没有被缓存或生成任何爬网统计信息 配置咖啡 Server.JS 您应该从配置中删除此行: .set('prerenderServiceUrl', 'http://w

因此,我试图为我的AngularJS应用程序设置一个ExpressJS后端,如下所示。我完全按照指示做了,唯一的区别是我启用了
HTML5模式
。我已将
元(name=“fragment”content=“!”)
包含在我的
index.jade
中,并将prerender令牌添加到我的
server.js
文件中(使用包),但不知怎的,我的页面似乎没有被缓存或生成任何爬网统计信息

配置咖啡

Server.JS


您应该从配置中删除此行:

.set('prerenderServiceUrl', 'http://www.mydomain.co.com/')

服务URL应该指向Prerender服务器,因此您不应该将其设置为您的网站URL。

我认为您应该确保在应用程序中实现了正确的Prerender.io配置

我测试了以下代码,并将其正确缓存在prerender.io仪表板中

File: ../static/routes.json content

["/","/content/terms-conditions","/content/about-us",..]

File: /config/webpack.production.js

const axios = require('axios');
const routesData = require('../static/routes.json'),

console.log("PRERENDER.io caching start for Crawler Bots to SEO indexing");
const host = 'your domain name with http or https';
const prerenderToken = '****';
const prerenderUrl = 'https://api.prerender.io/recache';

var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date+' '+time;
console.log("Start date time : "+dateTime);

for (const route of routesData) {
    const fullRoute = host + route + '/index.html';
    console.log(`Caching URL ${fullRoute}`);

    var prerednerData = {
        'prerenderToken': prerenderToken,
        'url': fullRoute
    };

    axios.post(prerenderUrl, prerednerData)
    .then((response) => {
        console.log('Product URL: '+prerednerData['url']);
        console.log('Status Code: '+response.status);
    })
    .catch((error) => {
        console.log('Product URL: '+prerednerData['url']);
        console.log('Error: '+error);
    });
}    

File: .htaccess

Options -Indexes

<IfModule mod_headers.c>
    RequestHeader set X-Prerender-Token "****"
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Pre-render HTML for search crawler bots to indexing
    <IfModule mod_proxy_http.c>
        RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
        RewriteCond %{QUERY_STRING} _escaped_fragment_
        # Only proxy the request to Prerender.io if it's a request for HTML
        RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff|\.svg))(.*) http://service.prerender.io/https://www.globalshop.com.au/$2 [NE,L,R=301]
    </IfModule>

    RewriteCond %{HTTP_HOST} www.domainname.com$ [NC]
    RewriteRule ^(.*)$ https://www.domainname.com/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^robots\.txt$ robots-disallow.txt [L]

    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^ index.html

</IfModule>
文件:../static/routes.json内容
[“/”、“/content/terms-conditions”、“/content/about-us”、…]
文件:/config/webpack.production.js
const axios=require('axios');
const routesData=require('../static/routes.json'),
log(“PRERENDER.io缓存启动,用于爬虫机器人搜索引擎优化索引”);
const host='您的域名与http或https';
常量prerenderToken='**';
const prerenderUrl='1〕https://api.prerender.io/recache';
var today=新日期();
var date=today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var time=today.getHours()+“:“+today.getMinutes()+”:“+today.getSeconds();
var dateTime=日期+“”+时间;
日志(“开始日期时间:+dateTime”);
for(路由数据的常量路由){
const fullRoute=host+route+'/index.html';
log(`Caching URL${fullRoute}`);
var prerednerData={
“prerenderToken”:prerenderToken,
“url”:完整路径
};
axios.post(预渲染、预渲染数据)
。然后((响应)=>{
log('Product URL:'+prerednerData['URL']);
console.log('状态代码:'+响应.Status);
})
.catch((错误)=>{
log('Product URL:'+prerednerData['URL']);
console.log('错误:'+错误);
});
}    
文件:.htaccess
选项-索引
RequestHeader集合X-Prerender-Token“***”
重新启动发动机
#将搜索爬虫机器人的HTML预呈现到索引
RewriteCond%{HTTP|u USER|u AGENT}googlebot | bingbot | yandex | baiduspider | facebookexternalhit | twitterbot | rogerbot | linkedinbot |嵌入| quora\link\preview | showyoubot | outbrain | pinterest | slackbot | vkShare | W3C验证程序[NC,或]
重写cond%{QUERY\u STRING}\u转义\u片段_
#如果是HTML请求,则仅将请求代理到Prerender.io
(10.js 124?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????|\.mov\.psd\.ai\.xls\.mp4\.m4a\.swf\.dat\.dmg\.iso\.flv\.m4v\.torrent\.ttf\.woff\.svg)(*)(*)http://service.prerender.io/https://www.globalshop.com.au/$2 [NE,L,R=301]
RewriteCond%{HTTP_HOST}www.domainname.com$[NC]
重写规则^(.*)$https://www.domainname.com/$1[R=301,L]
重写COND%{HTTP_HOST}!^www\[NC]
重写规则^robots\.txt$robots-disallow.txt[L]
RewriteCond%{HTTP:X-Forwarded-Proto}=HTTP
重写规则^https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
RewriteCond%{REQUEST_FILENAME}-f[或]
RewriteCond%{REQUEST_FILENAME}-d
重写规则^-[L]
重写规则^index.html

干杯!

我做了更改,但仍然不开心。在你告诉谷歌搜索机器人抓取你的页面后,是否需要一段时间才能显示统计数据?视情况而定。给我发封电子邮件,我会调查一下。todd@prerender.io
.set('prerenderServiceUrl', 'http://www.mydomain.co.com/')
File: ../static/routes.json content

["/","/content/terms-conditions","/content/about-us",..]

File: /config/webpack.production.js

const axios = require('axios');
const routesData = require('../static/routes.json'),

console.log("PRERENDER.io caching start for Crawler Bots to SEO indexing");
const host = 'your domain name with http or https';
const prerenderToken = '****';
const prerenderUrl = 'https://api.prerender.io/recache';

var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date+' '+time;
console.log("Start date time : "+dateTime);

for (const route of routesData) {
    const fullRoute = host + route + '/index.html';
    console.log(`Caching URL ${fullRoute}`);

    var prerednerData = {
        'prerenderToken': prerenderToken,
        'url': fullRoute
    };

    axios.post(prerenderUrl, prerednerData)
    .then((response) => {
        console.log('Product URL: '+prerednerData['url']);
        console.log('Status Code: '+response.status);
    })
    .catch((error) => {
        console.log('Product URL: '+prerednerData['url']);
        console.log('Error: '+error);
    });
}    

File: .htaccess

Options -Indexes

<IfModule mod_headers.c>
    RequestHeader set X-Prerender-Token "****"
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Pre-render HTML for search crawler bots to indexing
    <IfModule mod_proxy_http.c>
        RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
        RewriteCond %{QUERY_STRING} _escaped_fragment_
        # Only proxy the request to Prerender.io if it's a request for HTML
        RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff|\.svg))(.*) http://service.prerender.io/https://www.globalshop.com.au/$2 [NE,L,R=301]
    </IfModule>

    RewriteCond %{HTTP_HOST} www.domainname.com$ [NC]
    RewriteRule ^(.*)$ https://www.domainname.com/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^robots\.txt$ robots-disallow.txt [L]

    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^ index.html

</IfModule>