【发布时间】:2014-11-28 19:44:49
【问题描述】:
GITHUB:https://github.com/coasterb/foo_bar_stackoverflow
我无法使用“/foo/bar”路径访问我的公共目录中的样式表。
我认为这是我没有定义 public_folder 的问题,但事实并非如此。
require 'sinatra'
require 'haml'
set :static, true
set :public_folder, "public"
get '/foo' do
haml :foo
end
get '/foo/bar' do
haml :bar
end
# 目录层次结构 - 这不起作用
+Webapp
--app.rb
-+public
---stylesheet.css
-+views
---foo.haml
---bar.haml
# 目录层次结构 - 这确实有效,但我现在有我的文件的副本。
+Webapp
--app.rb
-+public
---stylesheet.css
--+foo
----stylesheet.css
-+views
---foo.haml
---bar.haml
localhost:9396/foo/bar:
#foo/bar.html from the web browser.
<html>
<head>
<link href='./stylesheet.css' rel='stylesheet' type='text/css'>
</head>
<html>
在 Chrome 的控制台中抛出“404 not found”错误,但不会在 /foo 控制台中抛出错误。
haml bar.haml:
!!!
%html
%head
%link{:href=>"./stylesheet.css", :rel => "stylesheet", :type => "text/css"}
【问题讨论】:
-
Haml 文件中的链接是什么样的?我怀疑您使用的是相对链接。
-
%link{:href=>"./stylesheet.css"不是指向/foo/bar/stylesheet.css,哪个不存在?尝试使用绝对路径:%link{:href=>"/stylesheet.css"(不带点)。 -
我删除了“.”以反映“绝对位置。我还删除了下面回答的“/”。我仍然收到 404 错误。
-
你有这个 github repo 的链接吗?