为什么我的外部CSS链接404会加载?

为什么我的外部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:

我使用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: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' />