好的,我想添加这个
User-Agent: *
Disallow: /
到所有环境中的robots.txt然后生产......任何关于最好想法的想要做到这一点。我应该从公共文件夹中删除它并创建路由/视图
我在资产管道之前使用rails 3.0.14 ...任何建议
答案 0 :(得分:4)
我今天再次写了这篇文章,与塞尔吉奥的答案基本相同,但共享机器人特定的结果可能会节省一些时间:)
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"
答案 1 :(得分: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上传内容。