songtianlun
a0516f731c
- Introduced `SeoConcern` module to handle SEO meta tags - Integrated `meta-tags` gem for customizable meta tags - Created `RefreshSitemapWorker` to automate sitemap updates - Added relevant meta tags in controllers for weather art and cities - Configured sitemap generation settings These changes improve the SEO of the application by ensuring that pages have appropriate meta tags. Additionally, a sitemap is now generated and refreshed daily, enhancing site visibility to search engines.
35 lines
1.0 KiB
Ruby
35 lines
1.0 KiB
Ruby
class RefreshSitemapWorker
|
|
include Sidekiq::Worker
|
|
|
|
def perform
|
|
SitemapGenerator::Sitemap.create do
|
|
add root_path, changefreq: "daily", priority: 1.0
|
|
add cities_path, changefreq: "daily", priority: 0.9
|
|
add arts_path, changefreq: "daily", priority: 0.9
|
|
|
|
City.find_each do |city|
|
|
add city_path(city),
|
|
changefreq: "daily",
|
|
priority: 0.8,
|
|
lastmod: city.updated_at
|
|
end
|
|
|
|
WeatherArt.includes(:city).find_each do |art|
|
|
if art.image.attached?
|
|
add city_weather_art_path(art.city, art),
|
|
changefreq: "daily",
|
|
priority: 0.7,
|
|
lastmod: art.updated_at,
|
|
images: [{
|
|
loc: url_for(art.image),
|
|
title: "#{art.city.name} Weather Art - #{art.weather_date.strftime('%B %d, %Y')}"
|
|
}]
|
|
end
|
|
end
|
|
end
|
|
|
|
SitemapGenerator::Sitemap.ping_search_engines if Rails.env.production?
|
|
rescue => e
|
|
Rails.logger.error "Error refreshing sitemap: #{e.message}"
|
|
end
|
|
end |