【问题标题】:Sitemap_generator produces sitemap at unknown URLSitemap_generator 在未知 URL 生成站点地图
【发布时间】:2012-10-16 09:59:51
【问题描述】:

我正在使用 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 错误。我尝试了以下方法来解决这个问题,但都没有奏效:

  1. 调用git add获取本地生成的两个xml文件,推送到Heroku,调用heroku run rake sitemap:refresh --app myapp-prod用我的生产URL更新本地生成的URL。但是文件没有被刷新,它与本地生成的完全一样,即使返回了与上面相同的消息。
  2. 将站点地图生成为自定义路径,例如公共/共享/。但是访问https://myapp.com/shared/sitemap1.xml.gz时错误仍然存​​在。
  3. 所有可能的和不可能的 URL 组合,例如 https://myapp.com/public/sitemap1.xml.gz(当然这永远不会起作用,但我想不遗余力)

关于什么可能导致这种行为以及站点地图可能存储在哪里的任何想法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku sitemap


    【解决方案1】:

    经过进一步研究,我终于弄清楚了问题所在。

    由于 Heroku 使用只读文件系统,因此无法将站点地图生成到 public 目录。这里有更详细的解释:

    https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem

    最终对我有用的解决方案是将站点地图生成到我的 Amazon S3 存储中,如 here 所述。

    【讨论】:

      【解决方案2】:

      您如何将站点地图上传到 Google Web Master 工具,因为默认情况下它希望站点地图位于 http://www.yoursite.com/.....

      我的站点地图托管在 Amazon S3 中,它在我的 robots.txt 文件中被引用,但我需要告诉 Google Web Master Tools 在哪里可以找到它。

      有什么建议吗?

      【讨论】:

      猜你喜欢
      • 2017-11-29
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      相关资源
      最近更新 更多