わかりました。これを追加します
User-Agent: *
Disallow: /
本番環境以外のすべての環境のrobots.txtに...最善のアイデアはこれを実行したいと考えています。パブリックフォルダから削除してルート/ビューを作成する必要があります
アセットパイプラインの前にレール3.0.14を使用しています...提案
わかりました。これを追加します
User-Agent: *
Disallow: /
本番環境以外のすべての環境のrobots.txtに...最善のアイデアはこれを実行したいと考えています。パブリックフォルダから削除してルート/ビューを作成する必要があります
アセットパイプラインの前にレール3.0.14を使用しています...提案
セルジオの答えと本質的に同じ道を今日も書き直しましたが、ロボット固有の結果を共有することで誰かの時間を節約できるかもしれません:)
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"
これが私のプロジェクトからの実際の動作コードです(robots.txtではなくnginx構成ですが、アイデアは明確である必要があります)。
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を介してコンテンツをアップロードします。