css - 样式表不适用于 sinatra erb View

标签 css ruby sinatra

我的样式表应用于我的应用程序的某些元素而不是其他元素,我不确定为什么。

这是我的文档结构:

Document structure

目前,样式表正在应用于 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/

相关文章:

ruby - 如何拯救 Aws::AwsError: NoSuchKey

ruby - 如何从另一个文件中的外部类访问变量

ruby - 如何在 Heroku 上修复 "sequel::DatabaseDisconnectError - Mysql::Error: MySQL server has gone away"

ruby - 为什么邮件 block 看不到我的变量?

javascript - 在 'Click Event' 上隐藏动态生成的 div

css - 填充到行的右侧

c# - 无法更改 asp.net C# 中 div 的可见性

javascript - 在 HTML 中单击按钮后如何将进度条(使用 Ladda)与按钮绑定(bind)?

ruby-on-rails - 从散列/YAML 中删除所有空元素?

javascript - 在 Sinatra 上使用 express.js 而不是 Ruby 的想法?