从特定路线加载带有Rack的文件

时间:2010-09-10 21:24:42

标签: ruby-on-rails rack

我正在关注此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 个答案:

答案 0 :(得分:1)

尝试将该文件放在<rails-root>/public/目录中。默认情况下,Rails应用程序将为该目录中的任何文件提供服务。 EG使用新的Rails应用,您可以转到http://localhost:3000/index.html,它将提供public/index.html。把你的api.js文件放在那里,你也可以这样做。