为什么我的外部CSS链接404会加载?
我使用JavaScript成功地尝试了CSS文件的几乎所有相对和绝对路径的组合,但是Sinatra和ERB更为独特 在Sinatra脚本中,我有公共目录和样式表目录,这与传统做法相同。在我的视图目录中,我有一个带有外部为什么我的外部CSS链接404会加载?,css,sinatra,erb,Css,Sinatra,Erb,我使用JavaScript成功地尝试了CSS文件的几乎所有相对和绝对路径的组合,但是Sinatra和ERB更为独特 在Sinatra脚本中,我有公共目录和样式表目录,这与传统做法相同。在我的视图目录中,我有一个带有外部 <link href='/some_dir/some_css_file.css' type="text/css" rel="stylesheet" /> 在终端中运行鸟枪时,我会遇到以下类型的错误: 127.0.0.1 - - [05/Nov/2019:23:24:
<link href='/some_dir/some_css_file.css' type="text/css" rel="stylesheet" />
在终端中运行鸟枪时,我会遇到以下类型的错误:
127.0.0.1 - - [05/Nov/2019:23:24:47 -0800] "GET /sent.css HTTP/1.1" 404 509 0.0543
127.0.0.1 - - [05/Nov/2019:23:24:47 -0800] "GET /public/stylesheets/sent HTTP/1.1" 404 534 0.0617
正文
在CSS中未关闭:
body {
background-color: lightblue;
color: #333;
font-family: Sans-Serif;
line-height: 18px;
}
h1 {
color: green;
}
p {
color: orange;
}
对于制作定制MVC应用程序的Sinatra未来用户: 我通过将
public
文件夹存储在root目录中解决了这个问题。这是Sinatra MVC中的一个惯例,它将public
目录中的CSS/JavaScript/图片保留在程序的根目录中
我把它错误地放在了应用程序目录中。一旦我把它向上移动到根目录中,我的相对路径就起作用了 默认情况下,Sinatra在名为Public的目录中查找CSS文件,您不必在链接标记上包含文件夹名“Public” 您仍然可以使用公用文件夹中的子文件夹 在这种情况下,这应该起作用:
<link href='/stylesheets/sent/sent.css' type='text/css' rel='stylesheet' />
如果仍要更改公用文件夹的位置,可以通过更改Sinatra配置来完成,请查找以下set:Public_folder,Proc.new{File.join(root,“static”)}
在以下链接上:
虽然这是一个问题,但它不会引起OP所问的问题,可能应该是一个评论。
body {
background-color: lightblue;
color: #333;
font-family: Sans-Serif;
line-height: 18px;
}
h1 {
color: green;
}
p {
color: orange;
}
<link href='/stylesheets/sent/sent.css' type='text/css' rel='stylesheet' />