PhantomJS没有正确地提供JS和CSS文件
我有一个节点服务器运行并监听端口8080.有一个mod_rewrite规则处于活动状态,将Botsredirect到此端口。
RewriteCond %{HTTP_USER_AGENT} (googlebot|adsbot-google|bingbot|msnbot|psbot|gigabot|twitterbot|linkedinbot|yahoo-mmcrawler|pingdom\.com_bot) [NC] RewriteRule ^ http://127.0.0.1:8080%{REQUEST_URI} [P]
节点脚本依赖phantomjs脚本来打开漫游器请求的任何URL并返回内容。
代码取自http://backbonetutorials.com/seo-for-single-page-apps/
我通过在本地机器上运行phantomjs并使用相同的phantomjs代码直接请求我的网页来testing这一点。 结果与“crawl as google”表示的一样(google网站pipe理员工具),也就是说CSS和JS文件没有被phantomjs正确提供。
CSS文件只包含
<html><head></head><body></body></html>
没有实际的CSS内容。 JS文件有
<html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
插入任何JS代码之前的最开始。
因此,当谷歌试图抓取和呈现页面布局被打破,JS错误抛出。
任何提示? 谢谢。
好的。 我find了解决办法。
对每个请求使用probablly page.content 。 你只需要使用它的HTML文件。 这是我的代码:
if (url.indexOf('.html') > -1) cb(page.content); else cb(page.plainText);
第二个解决scheme需要改变你的htaccess。
RewriteCond %{HTTP_USER_AGENT} (googlebot|adsbot-google|bingbot|msnbot|psbot|gigabot|twitterbot|linkedinbot|yahoo-mmcrawler|pingdom\.com_bot) [NC] RewriteCond %{REQUEST_URI} (.*).html(.*) <---- ADDED THIS ONE RewriteRule ^ http://%{HTTP_HOST}:3004%{REQUEST_URI} [P]
- 使用React Router 4进行服务器端渲染时,上下文为未定义
- 我的第一个Node.js服务器:无法加载资源:net :: ERR_INCOMPLETE_CHUNKED_ENCODING
- 持续部署单页面应用程序?
- 如何在没有Cookie的情况下在SPA中使用第三方authentication服务?
- 为Node.js服务器+ SPA javascript框架设置自动化BDDtesting环境的简单方法?
- 用于生成PDF的React JS / Node JS / Java RESTful API
- 如何使用React-Helmet优化SPA的SEO?
- 如何在我的SPA加载过程中validation和更新JWT id_token?
- 预期的响应包含一个数组,但有一个对象