2015-03-13 2 views
0

У меня есть этот блок кода:статических файлов служит использованием Rack

require "cuba" 
require "mote" 
require "mote/render" 

Cuba.plugin(Mote::Render) 

Cuba.use Rack::Static, 
# urls: %w[/index], 
    root: File.expand_path("./public", __dir__) 

Cuba.define do 
    on(root) do 
     render("index", title: "Welcome") 
    end 

end 

и я пытаюсь сервера файл в общей папке (которая находится в том же каталоге, что и этот файл я бегу) с именем «index.html», но я получаю сообщение об ошибке на моем сайте, говоря, что его невозможно найти.

No such file or directory @ rb_sysopen - /root/views/index.html.mote 

Любая помощь? Заранее спасибо!

ответ

2

Куба пытается вынести шаблон, так что вы можете переименовать файл .mote и он должен оказывать нормально, или использовать что-то вроде этого:

res.headers["Content-Type"] = "text/html; charset=utf-8" 
res.write(IO.read('/path/to/your/file.html')) 

Source является довольно ясно, как рендер функция работает.

+0

бы, что бы между этим [на «/ Foo» делать .... конец]? – Vikaton

+0

Да, как в их [readme] (https://github.com/soveran/cuba/blob/master/README.md) –

0

Вы также можете настроить свои собственные маршруты для сервировки CSS/JS без использования Rack :: Static

on 'css', extension('css') do 
    res['Content-Type'] = 'text/css' 
    res.write File.read(req.path) 
end