【发布时间】:2016-02-11 15:06:19
【问题描述】:
我将这个tutorial 用于宝石sitemap_generator
我能够通过命令 rake sitemap:refresh 构建 xml 站点地图,但现在不行了。这可能是因为我更新了我所有的宝石。现在我总是得到错误
Don't know how to build task 'environment'
rake 站点地图:刷新 --trace 给出
** Invoke sitemap:refresh (first_time)
** Invoke sitemap:create (first_time)
** Invoke sitemap:require_environment (first_time)
** Execute sitemap:require_environment
rake aborted!
Don't know how to build task 'environment'
/Users/Royal/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]'
Rakefile 是
require File.expand_path('../config/application', __FILE__)
#Rake tasks for sitemap
require 'sitemap_generator/tasks'
在 lib/task/sitemap.rake 我有
require 'aws'
require 'gems'
namespace :sitemap do
desc 'Upload the sitemap files to S3'
task upload_to_s3: :environment do
puts 'Starting sitemap upload to S3...'
s3 = Aws::S3::Resource.new
bucket = s3.bucket(ENV['website'])
Dir.entries(File.join(Rails.root, 'tmp', 'sitemaps')).each do |file_name|
next if %w(. .. .DS_Store).include? file_name
path = "sitemaps/#{file_name}"
file = File.join(Rails.root, 'tmp', 'sitemaps', file_name)
object = bucket.object(path)
object.upload_file(file)
puts "Saved #{file_name} to S3"
end
end
desc 'Create the sitemap, then upload it to S3 and ping the search engines'
task create_upload_and_ping: :environment do
Rake::Task["sitemap:create"].invoke
Rake::Task["sitemap:upload_to_s3"].invoke
SitemapGenerator::Sitemap.ping_search_engines('http://website.co/sitemap.xml.gz')
end
end
非常感谢您的帮助。如果您需要更多信息,请告诉我。
【问题讨论】:
-
您正在调用
Rake::Task["sitemap:create"].invoke这在您粘贴的 sn-p 上没有显示,这是什么样的? -
嗨 Chakaitos,感谢您的帮助,对不起,我对 Rails 完全陌生。我重建了我的项目,我将更新帖子。
-
您的 Rake::Task["sitemap:create"] 任务看起来有问题。你能发布那个代码吗?
标签: ruby-on-rails ruby rubygems