ruby – 如何提供静态文件? (CSS)
在Camping中,如何最好地提供静态文件,例如css?
现在我有 class Style < R '/cards.css' def get @headers["Content-Type"] = "text/css" File.read('cards.css') end end 还有更聪明的方式涉及Rack吗? 解决方法
Camping的当前(记得从RubyGems安装最新版本!)对静态文件的立场是服务器应该负责提供静态文件.
如果您使用camping-command,则应自动为您提供public / -directory.只需将cards.css移动到public / cards.css和localhost:3301 / cards.css即可返回该文件. 在生产中,您应该直接从public / -directory配置Apache / Nginx /其他任何服务文件. 如果您无法配置Apache / Nginx(例如在Heroku中),您可以像这样编写自定义config.ru: # Your Camping app: app = MyApp # Static files: files = Rack::File.new('public') # First try the static files,then "fallback" to the app run Rack::Cascade.new([files,app],[405,404,403]) (这就是Camping :: Server在内部的作用:https://github.com/camping/camping/blob/5201b49b753fe29dc3d2e96405d724bcaa7ad7d4/lib/camping/server.rb#L151) 对于小文件,您可以将它们存储在app.rb:https://github.com/camping/camping/blob/5201b49b753fe29dc3d2e96405d724bcaa7ad7d4/test/app_file.rb#L37的DATA块中 如果要将所有内容保存在一个文件中,这也很有用. Camping.goes :Foo __END__ @@ /cards.css ... Camping将使用文件扩展名来设置正确的Content-Type. 此外,最新版本的Camping有一个服务方法,可以为您处理Content-Type.您可以将控制器简化为: class Style < R '/style.css' def get serve "cards.css",File.read("cards.css") end end 我不得不为糟糕的文件道歉.现在你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |