使用 Rack 的静态文件服务
Static File serving using 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
我正在尝试将 public 文件夹中的文件(与我 运行 的文件位于同一目录中)命名为 "index.html",但是我在我的网站上收到一条错误消息,提示无法找到它。
No such file or directory @ rb_sysopen - /root/views/index.html.mote
有什么帮助吗?提前致谢!
Cuba 尝试呈现模板,因此您可以将文件重命名为 .mote,它应该可以正常呈现,或者使用类似这样的名称:
res.headers["Content-Type"] = "text/html; charset=utf-8"
res.write(IO.read('/path/to/your/file.html'))
Source 渲染函数的工作原理已经很清楚了。
您也可以在不使用 Rack::Static
的情况下为 css/js 设置自己的自定义路由
on 'css', extension('css') do
res['Content-Type'] = 'text/css'
res.write File.read(req.path)
end
我有这段代码:
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
我正在尝试将 public 文件夹中的文件(与我 运行 的文件位于同一目录中)命名为 "index.html",但是我在我的网站上收到一条错误消息,提示无法找到它。
No such file or directory @ rb_sysopen - /root/views/index.html.mote
有什么帮助吗?提前致谢!
Cuba 尝试呈现模板,因此您可以将文件重命名为 .mote,它应该可以正常呈现,或者使用类似这样的名称:
res.headers["Content-Type"] = "text/html; charset=utf-8"
res.write(IO.read('/path/to/your/file.html'))
Source 渲染函数的工作原理已经很清楚了。
您也可以在不使用 Rack::Static
的情况下为 css/js 设置自己的自定义路由on 'css', extension('css') do
res['Content-Type'] = 'text/css'
res.write File.read(req.path)
end