На самом деле, вы, вероятно, хотите установить тип mime в mime_types.rb
и сделать это в блоке respond_to
, чтобы он не возвращал его как 'text/html'
:
Mime::Type.register "text/plain", :txt
Тогда ваши маршруты будут выглядеть так:
map.robots '/robots.txt', :controller => 'robots', :action => 'robots'
Для рельсов3:
match '/robots.txt' => 'robots#robots'
и контроллер что-то вроде этого (поместите файл (файлы) в любое удобное для вас место):
class RobotsController < ApplicationController
def robots
subdomain = # get subdomain, escape
robots = File.read(RAILS_ROOT + "/config/robots.#{subdomain}.txt")
respond_to do |format|
format.txt { render :text => robots, :layout => false }
end
end
end
рискуя перегрузить его, у меня может возникнуть соблазн кэшировать операцию чтения файла ...
Да, вам почти наверняка придется удалить / переместить существующий файл 'public/robots.txt'
.
Проницательные читатели заметят, что вы можете легко заменить RAILS_ENV
на subdomain
...