1

サイトのサイトマップを生成するために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. ローカルで生成された 2 つの xml ファイルを呼び出しgit addて Heroku にプッシュし、呼び出しheroku run rake sitemap:refresh --app myapp-prodてローカルで生成された URL を本番 URL で更新します。ただし、ファイルは更新されず、上記と同じメッセージが返されても、ローカルで生成されたものとまったく同じままです。
  2. サイトマップをカスタム パス (public/shared/ など) に生成します。しかし、アクセスしてもエラーは続きhttps://myapp.com/shared/sitemap1.xml.gzます。
  3. 可能性と不可能性のすべての URL の組み合わせhttps://myapp.com/public/sitemap1.xml.gz(もちろん、これは決して機能しませんが、あらゆる手段を講じたいと考えていました)

この動作の原因と、サイトマップの保存場所に関するアイデアはありますか?

4

2 に答える 2

4

さらなる調査の後、私は最終的に問題が何であるかを理解しました。

publicHeroku は読み取り専用のファイルシステムを使用しているため、ディレクトリにサイトマップを生成できません。これについては、こちらで詳しく説明しています。

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

最終的にうまくいった解決策は、こちらで説明されているように、Amazon S3 ストレージにサイトマップを生成することでした。

于 2012-10-18T16:26:28.333 に答える
0

デフォルトではサイトマップをhttp://www.yoursite.com/ .....

私のサイトマップは Amazon S3 でホストされており、robots.txt ファイルで参照されていますが、Google Web マスター ツールにその場所を伝える必要があります。

何かアドバイス?

于 2013-12-07T11:52:57.680 に答える