Sinatra 不加载资产
Sinatra doesn't load assets
我有一个 sinatra 登陆页面。服务器通过在根文件夹中执行 index.rb
启动。
例如:
get '/en' do
I18n.locale = 'en'
erb :index, locals: {langswitch: "/ru", current_locale: "en"}
end
呈现 index.erb
并且运行良好。
此页面有:
<link rel="stylesheet" type="text/css" href="index.css">
如果我打开这个 link,它指向 http://0.0.0.0:9292/index.css
,检索 css 文件并按预期呈现页面。
不过,还有
get '/agreement/en' do
I18n.locale = 'en'
erb :agreement, locals: {langswitch: "/ru", current_locale: "en"}
end
如果我从此页面访问同一个 link,它会导致 http://0.0.0.0:9292/agreement/bootstrap.css
,而不是 http://0.0.0.0:9292/index.css
,并且无法检索文件。
与我所有的图像一样,其他 css 文件。
首先,您需要将所有资产放入 public 文件夹中。那么你需要修改
<link rel="stylesheet" type="text/css" href="index.css">
到
<link rel="stylesheet" type="text/css" href="/index.css">
。
所以你需要做的就是把 /
放在 index.css
之前
我有一个 sinatra 登陆页面。服务器通过在根文件夹中执行 index.rb
启动。
例如:
get '/en' do
I18n.locale = 'en'
erb :index, locals: {langswitch: "/ru", current_locale: "en"}
end
呈现 index.erb
并且运行良好。
此页面有:
<link rel="stylesheet" type="text/css" href="index.css">
如果我打开这个 link,它指向 http://0.0.0.0:9292/index.css
,检索 css 文件并按预期呈现页面。
不过,还有
get '/agreement/en' do
I18n.locale = 'en'
erb :agreement, locals: {langswitch: "/ru", current_locale: "en"}
end
如果我从此页面访问同一个 link,它会导致 http://0.0.0.0:9292/agreement/bootstrap.css
,而不是 http://0.0.0.0:9292/index.css
,并且无法检索文件。
与我所有的图像一样,其他 css 文件。
首先,您需要将所有资产放入 public 文件夹中。那么你需要修改
<link rel="stylesheet" type="text/css" href="index.css">
到
<link rel="stylesheet" type="text/css" href="/index.css">
。
所以你需要做的就是把 /
放在 index.css