我曾看到一些关于在Heroku上生成站点地图的旧帖子...其中的挑战是需要将其存储在S3上,并配置它以使站点地图合法,因为它是托管在其他地方的。我没有看到任何明确的东西,但有一些对话和建议补丁。是否有即插即用的解决方案可以很好地与Heroku配合使用?
根据https://github.com/kjvarga/sitemap_generator的文章:
你应该将网站地图索引文件的URL添加到public/robots.txt中,以帮助搜索引擎找到您的站点地图。该URL应该是指向站点地图索引的完整URL。例如:
如果您正在使用Google Webmaster工具,该工具只允许您指定主机的URL地址,也许您可以创建一个控制器和操作,只需重定向到S3上的sitemap.xml,然后在Webmaster工具中指定该URL。 http://www.billrowell.com/2012/02/01/create-an-xml-sitemap-on-heroku-via-amazon-s3/
如果您想要上传至S3,则可以参考以下内容: https://github.com/kjvarga/sitemap_generator/wiki/Generate-Sitemaps-on-read-only-filesystems-like-Heroku
我正在等待 sitemap_generator 的 s3 版本,如果它能够实现它所说的,那就可以了。
我之前是通过名为sitemap.xml的路由到一个控制器来动态构建站点地图,而不是爬取网站并有一个硬编码的sitemap.xml必须存储在某个地方。我想这取决于您的应用程序以及URL更改的频率。
我的英语不太好。 但是我可以向您解释我的代码。 XML 是使用 'xmlbuilder' 创建的。
CreateXmlFile(request, response, next, function(request, response, next, xml){
response.type('text/xml');
response.send(xml);
if(typeof next == "function"){
next();
}
});
get '/sitemap.xml.gz', to: redirect('https://your-bucket.s3.amazonaws.com/sitemaps/sitemap.xml.gz')
- Daniel