Загрузка файла с Rack по определенному маршруту - PullRequest
2 голосов
/ 11 сентября 2010

Я слежу за частью этого Railscast и пытаюсь загрузить статический файл, используя Rack, когда вызывается определенный маршрут:

match "/myApi.js" => lambda { |env| [200, {}, Rack::File.new("/v1/myApi.js")] }

Независимо от того, что я делаю, даже если я просто пытаюсь отправить строку через:

match "/myApi.js" => lambda { |env| [200, {}, "Hello World"] }

Я все еще получаю:

NoMethodError 

undefined method `body' for #<Rack::File:0x00000101edcea0 @root="/my/path">

Как я могу сделать статический файл с помощью стойки?

1 Ответ

1 голос
/ 27 августа 2011

Попробуйте поместить этот файл в каталог <rails-root>/public/. По умолчанию приложение Rails будет обслуживать любой файл в этом каталоге. Например, с новым приложением Rails вы можете перейти на http://localhost:3000/index.html, и оно будет обслуживать public/index.html. Поместите туда свой файл api.js, и вы можете сделать то же самое.

...