在 sinatra 上提供静态文件
serving static files on sinatra
我是第一次开发 Sinatra 应用程序,在服务 javascript 资产时遇到了问题。
我遵循将静态文件放在“public”文件夹中的 Sinatra 惯例,它在本地工作,但是当我们创建一个 Docker 图像时,我们得到一个 404,而这与 localhost 一起工作.
我看到在哪里可以设置 public_folder 我试过这样:
http://sinatrarb.com/configuration.html
但仍然是 404'ing。有没有办法获取顶级对象并询问它期望 public_folder 的位置(如 Rails.env)?
您可以检查 settings
对象。
irb(main):001:0> require "sinatra"
=> true
irb(main):002:0> settings.public_folder
=> "/usr/lib/ruby/2.5.0/irb/public"
这允许您创建一条路线,其中 returns 路径,像这样
require 'sinatra'
get '/' do
settings.public_folder
end
如果没有更多信息,我猜测您的 public 文件夹指向了您 docker 中的错误目录,因为项目 :root
指向的目录与您期望的不同。
我是第一次开发 Sinatra 应用程序,在服务 javascript 资产时遇到了问题。
我遵循将静态文件放在“public”文件夹中的 Sinatra 惯例,它在本地工作,但是当我们创建一个 Docker 图像时,我们得到一个 404,而这与 localhost 一起工作.
我看到在哪里可以设置 public_folder 我试过这样: http://sinatrarb.com/configuration.html
但仍然是 404'ing。有没有办法获取顶级对象并询问它期望 public_folder 的位置(如 Rails.env)?
您可以检查 settings
对象。
irb(main):001:0> require "sinatra"
=> true
irb(main):002:0> settings.public_folder
=> "/usr/lib/ruby/2.5.0/irb/public"
这允许您创建一条路线,其中 returns 路径,像这样
require 'sinatra'
get '/' do
settings.public_folder
end
如果没有更多信息,我猜测您的 public 文件夹指向了您 docker 中的错误目录,因为项目 :root
指向的目录与您期望的不同。