0

好的,所以我想添加这个

User-Agent: *
Disallow: /

除了生产之外的所有环境中的 robots.txt ......任何关于最好的想法都想这样做。我应该从公共文件夹中删除它并创建一个路由/视图

我在资产管道之前使用 rails 3.0.14 ...任何建议

4

2 回答 2

4

Capistrano 用于上传阻止 robots.txt 的任务

我今天再次写了这篇文章,基本上与塞尔吉奥的答案相同,但分享机器人特定的结果可能会节省一些时间:)

namespace :deploy do
  desc "Uploads a robots.txt that mandates the site as off-limits to crawlers"
  task :block_robots, :roles => :app do
    content = [
      '# This is a staging site. Do not index.',
      'User-agent: *',
      'Disallow: /'
    ].join($/)

    logger.info "Uploading blocking robots.txt"
    put content, "#{current_path}/public/robots.txt"
  end
end

然后从你的登台配方中触发它,比如

after "deploy:update_code", "deploy:block_robots"
于 2012-11-15T00:32:20.820 回答
3

这是我项目中的真实工作代码(它是 nginx 配置,不是 robots.txt,但想法应该很清楚)。

task :nginx_config do
  conf = <<-CONF
   server {
      listen 80;
      client_max_body_size 2M; 
      server_name #{domain_name};

      -- snip --
    }
  CONF

  put conf, "/etc/nginx/sites-available/#{application}_#{rails_env}"
end

因此,基本上,您在字符串中创建文件的内容,然后执行put所需的路径。这将使 capistrano 通过 SFTP 上传内容。

于 2012-07-02T23:45:24.210 回答