0

我有这段代码:

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

有什么帮助吗?提前致谢!

4

2 回答 2

2

Cuba尝试渲染模板,因此您可以将文件重命名为 .mote 并且它应该可以渲染,或者使用如下内容:

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

Source非常清楚渲染函数的工作原理。

于 2015-03-13T17:56:50.713 回答
1

您还可以设置自己的自定义路由来提供 css/js,而无需使用 Rack::Static

on 'css', extension('css') do
    res['Content-Type'] = 'text/css'
    res.write File.read(req.path)
end
于 2017-05-24T14:07:42.620 回答