Таблица стилей не применяется к представлениям 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, она будет храниться в кеше браузера, как только вы окажетесь в производственной среде

Другие вопросы по тегам