Таблица стилей не применяется к представлениям sinatra erb
Моя таблица стилей применяется к некоторым элементам моего приложения, а не к другим, и я не знаю почему.
Вот моя структура документа:
В настоящее время таблица стилей применяется к index.erb и contacts.erb, но не к остальным в дереве, и я не знаю почему.
В моем макете я указал: <link rel="stylesheet" type="text/css" href="style.css">
Есть идеи?
2 ответа
Вы используете относительную ссылку на вашу таблицу стилей, поэтому браузер будет запрашивать ее относительно текущего 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
помощник, который обеспечит использование правильного URL, даже если ваше приложение смонтировано в другой точке (например, в приложении Rails) или находится за прокси:
<link rel="stylesheet" type="text/css" href="<%= url("/style.css")%>">
<link rel="stylesheet" type="text/css" href="/style.css">
общая папка всегда используется для хранения файлов css,js, она будет храниться в кеше браузера, как только вы окажетесь в производственной среде