不知道如何构建任务'环境'sitemap_generator

时间:2016-02-11 15:06:19

标签: ruby-on-rails ruby rubygems

我正在使用此tutorial作为gem sitemap_generator

我能够通过命令rake sitemap构建xml站点地图:刷新但不再存在。这可能是因为我对所有宝石进行了更新。现在我总是得到错误

Don't know how to build task 'environment'

rake sitemap:refresh --trace gives

** 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

非常感谢你的帮助。如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:-1)

我重建了项目,现在它正在运作。谢谢你的帮助。