我正在使用sitemap_generator gem为我的网站制作站点地图。
在本地制作网站地图效果很好,我可以在http://localhost:3000/sitemap1.xml.gz
访问网站地图。
部署到Heroku并运行
之后heroku run rake sitemap:refresh --app myapp-prod
我明白了:
In /app/public/
+ sitemap1.xml.gz 254 links / 4.74 KB
+ sitemap_index.xml.gz 1 sitemaps / 231 Bytes
Sitemap stats: 254 links / 1 sitemaps / 0m06s
到目前为止一切顺利 - 然而,当我尝试在https://myapp.com/sitemap1.xml.gz
访问我的站点地图时,出现404错误。我已经尝试了以下方法来解决这个问题但没有一个有效:
git add
,将它们推送到Heroku,然后调用heroku run rake sitemap:refresh --app myapp-prod
以使用我的生产URL更新本地生成的URL。但是,文件没有刷新,它与本地生成的文件完全相同,即使返回了与上面相同的消息。https://myapp.com/shared/sitemap1.xml.gz
时错误仍然存在。https://myapp.com/public/sitemap1.xml.gz
(当然这些组合永远不会起作用,但我们不遗余力)有关可能导致此行为的原因以及可能存储站点地图的任何想法?
答案 0 :(得分:4)
经过深入研究后,我终于找到了问题所在。
由于Heroku使用只读文件系统,因此无法在public
目录中生成站点地图。这在这里有更详细的解释:
https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
最终为我工作的解决方案是将网站地图生成到我的Amazon S3存储中,如here所述。
答案 1 :(得分:0)
您如何将站点地图上传到Google Web Master工具,因为默认情况下,它希望站点地图能够在http://www.yoursite.com/生效.....
我的网站地图在亚马逊S3中托管,并在我的robots.txt文件中引用,但我需要告诉Google Web Master Tools在哪里找到它。
有什么建议吗?