加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何提供静态文件? (CSS)

发布时间:2020-12-17 03:47:10 所属栏目:百科 来源:网络整理
导读:在Camping中,如何最好地提供静态文件,例如css? 现在我有 class Style R '/cards.css' def get @headers["Content-Type"] = "text/css" File.read('cards.css') endend 还有更聪明的方式涉及Rack吗? 解决方法 Camping的当前(记得从RubyGems安装最新版本!)
在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

我不得不为糟糕的文件道歉.现在你

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读