未解決の問題に関するメモです。
Web知識の勉強も兼ねてSEOに興味を持ち、サイトマップの作成がポピュラーな手法である事を知りました。
railsではgemを使って簡単に実装できるようなのですが、現在進行形で詰まっているのでメモ。
公式ドキュメントに加えて、以下の記事を参照。
development環境では、サイトマップが作成できる事を確認。
ただ、production環境(Heroku)では、サイトマップをS3に保存しておく必要があるらしく、
heroku run rake sitemap:refresh
最終的にこれを打たないといけないらしい。
ただ、デプロイまでエラー出ませんでしたが、デプロイ後の
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を使って解決。