プチゆる週末PJT

コンサル会社で働きながら、プログラミング学習者の「作ってみた」を応援するサイト「Eggineer」の開発・運営を行なっていました。

heroku run rake sitemap:refreshができない(gem:sitemap_generator)

未解決の問題に関するメモです。

 

Web知識の勉強も兼ねてSEOに興味を持ち、サイトマップの作成がポピュラーな手法である事を知りました。

railsではgemを使って簡単に実装できるようなのですが、現在進行形で詰まっているのでメモ。

github.com

 

公式ドキュメントに加えて、以下の記事を参照。

qiita.com

www.workabroad.jp

 

development環境では、サイトマップが作成できる事を確認。

ただ、production環境(Heroku)では、サイトマップをS3に保存しておく必要があるらしく、

heroku run rake sitemap:refresh

 最終的にこれを打たないといけないらしい。

github.com

hamayuzin.hatenablog.com

 

ただ、デプロイまでエラー出ませんでしたが、デプロイ後の

heroku run rake sitemap:refresh

 でエラー。

rake aborted!

NoMethodError: undefined method `match' for nil:NilClass

Did you mean?  catch

/app/vendor/bundle/ruby/2.3.0/gems/aws-partitions-1.70.0/lib/aws-partitions/endpoint_provider.rb:82:in `block in partition_matching_region' 

ググったところ、regionの指定が悪いとエラーになっているらしいですが、

SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new(
bucket: ENV["S3_BUCKET"],
aws_access_key_id: ENV["S3_ACCESS_KEY"],
aws_secret_access_key: ENV["S3_SECRET_KEY"],
aws_region: ENV["S3_REGION"]) 

 色々いじってみても、よく分からず、放置中です。。。

そもそも

NoMethodError: undefined method `match' for nil:NilClass 

 このmatchは何のmatchなのかしら。

 

追記(2018/3/24)

SitemapGenerator::Sitemap.adapter = SitemapGenerator::AwsSdkAdapter.new(
bucket: ENV["S3_BUCKET"],
aws_access_key_id: ENV["S3_ACCESS_KEY"],
aws_secret_access_key: ENV["S3_SECRET_KEY"],
aws_region: ENV["S3_REGION"]) 

環境変数周り、混乱して記述していただけでした。

dotenvというgemを使って解決。

f:id:YO37377306:20180326183940j:plain

Photo by Oleg. | Flickr