У меня есть приложение Ruby on Rails, и я создал sitemap.xml файл (в публичном каталоге) с sitemap_generator gem, но он не может быть прочитан в производстве.
sitemap.rb
# Set the host name for URL creation
SitemapGenerator::Sitemap.default_host = "https://example.com"
SitemapGenerator::Sitemap.namer = SitemapGenerator::SimpleNamer.new(:sitemap, :extension => '.xml')
SitemapGenerator::Sitemap.create do
Category.find_each do |cat|
add category_path(cat), priority: 0.8, changefreq: 'daily', lastmod: cat.updated_at
end
Job.where(status: true).find_each do |job|
add job_path(job), priority: 0.6, lastmod: job.updated_at
end
end
errors_controller.rb
class ErrorsController < ApplicationController
def not_found
render status: 404
end
def unprocessable_entity
render status: 422
end
def internal_server_error
render status: 500
end
end
У меня есть все представления для каждого типа ошибок, но Журналы Heroku показать мне:
I, [2019-10-16T11:57:53 #4] INFO -- : Processing by ErrorsController#not_found as XML
I, [2019-10-16T11:57:53 #4] INFO -- : Completed 500 Internal Server Error in 2ms (ActiveRecord: 0.0ms)
2019-10-16T11:57:53 app[web.1]: Error during failsafe response: Missing template errors/not_found, application/not_found with {:locale=>[:en], :formats=>[:xml], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder, :haml]}. Searched in:
2019-10-16T11:57:53 app[web.1]: * "/app/app/views"
Команда heroku run rails sitemap: refresh: no_ping создает все ссылки, которые я хочу, но когда я пытаюсь увидеть ссылку https://mywebsite.com/sitemap.xml - я получаю 500 ошибок и не могу видеть содержимое - я не знаю почему. Я думаю, что это может быть некоторые проблемы с контроллером ошибок, потому что https://mywebsite.com/sitemap (без .xml) отображает страницу 404. С .xml это ошибка 500.
На локальном хосте все работает нормально, но в рабочем режиме на Heroku у меня проблемы.