我的样式表应用于我的应用程序的某些元素而不是其他元素,我不确定为什么。
这是我的文档结构:
目前,样式表正在应用于 index.erb 和 contacts.erb,但没有应用于树中的其他部分,我不确定为什么。
在我的布局中我指定了:<link rel="stylesheet" type="text/css" href="style.css">
有什么想法吗?
最佳答案
您正在使用对样式表的相对引用,因此浏览器将请求它相对于当前 url。这意味着对于 /
和 /contacts
浏览器将请求 /styles.css
并找到它,但是例如 /contacts/1
它将请求不存在的 /contacts/style.css
。如果您检查日志,您可能会在发生这种情况的地方看到大量 404。
解决方案是为您的样式表使用绝对路径。假设您的应用程序安装在服务器的根目录下(即向 http://example.com/contacts/1
发出请求),您只需添加 /
到 href
的开头:
<link rel="stylesheet" type="text/css" href="/style.css">
一个更强大的解决方案是使用 url
helper ,这将确保即使您的应用程序安装在另一点(例如在 Rails 应用程序中)或在代理后面,也将使用正确的 url:
<link rel="stylesheet" type="text/css" href="<%= url("/style.css")%>">
关于css - 样式表不适用于 sinatra erb View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153013/