Html файл ветки не может найти путь к моему файлу css в приложении Symfony

Я начал новый проект в Symfony. Я новичок в этом, но я выполнил все инструкции из документации Symfony по установке:

/* assets/styles/app.css */
body {
    background-color: rgb(177, 44, 44);
}
 h1{
     color: red;
 }

 h2{
     color:purple;
     border: 1px solid black;
 }
{% extends 'base.html.twig' %}

{% block body %}

    <h1> Bienvenue à tous </h1>
    <h2> Bienvenue 2 </h2>

{% endblock %}
<!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title>{% block title %}Welcome!{% endblock %}</title>
        {# Run `composer require symfony/webpack-encore-bundle`
           and uncomment the following Encore helpers to start using Symfony UX #}
        <link rel = "stylesheet" href = "assets\styles\app.css" type = "text/css">
        {% block stylesheets %}
            {#{{ encore_entry_link_tags('app') }}#}
        {% endblock %}

        {% block javascripts %}
            {#{{ encore_entry_script_tags('app') }}#}
        {% endblock %}
    </head>
    <body>
    <div class = "container">
        {% block body %}{% endblock %}
    </div>
    </body>
</html>

[введите описание изображения здесь] [1] настроен. Я загрузил пакет webpack-encore-bundle с менеджером пакетов пряжи. Я думаю, что my () хорошо размещен, но мой html файл не может найти путь к моему css.

вот мои файлы [1]: https://i.stack.imgur.com/RA9FJ.png

моя консоль сетевого браузера сообщает мне это "net :: ERR_ABORTED 404 (Not Found)"

Что вы пробовали для устранения проблемы? Папка public содержит папку assets или символическую ссылку на данную?

Nico Haase 30.03.2021 14:33

Моя проблема решена. Я не завершил часть создания актива. В моей общей папке ничего не было. Итак, я выполнил команду «yarn encore dev», и теперь у меня есть папка сборки внутри общедоступной. Я изменил ссылку css для (<link rel = "stylesheet" href = "/ build / app.css">), и теперь она работает. Спасибо за ваш ответ.

StackAtx 30.03.2021 15:16
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С Webpack Encore

Вам не следует писать свой <link>-тег самостоятельно, вместо этого используйте прокомментированный encore_entry_link_tags. encore_entry_link_tags убедится, что он указывает на файл, созданный Webpack Encore (например, после вызова yarn encore dev).

Когда вы используете Webpack Encore, используйте webpack.config.yaml, чтобы указать на ваш CSS в активах с помощью addEntry('app', ...file..) (или, возможно, addStyleEntry, но addEntry подойдет). Webpack Encore берет файл под assets/styles/app.css, а затем помещает его в public/ по умолчанию public/build. В зависимости от вашей конфигурации может случиться так, что ваше имя файла не останется прежним во время этого процесса. Хорошо то, что Webpack Encore обычно обо всем позаботится за вас. (Если нет, задайте для этого вопрос).

См. Также: https://symfony.com/doc/current/frontend/encore/simple-example.html

Когда не используется Webpack Encore

Вы должны использовать косую черту, например assets/styles/app.css. Если вы не используете Webpack Encore, убедитесь, что у вас есть файл на public/assets/styles/app.css, чтобы он был доступен для вашего браузера. Вы также должны заключить это в другую вспомогательную функцию под названием asset. Другими словами, он должен выглядеть примерно так (при условии, что путь правильный):

<link rel = "stylesheet" href = "{{ path('assets/styles/app.css') }}" type = "text/css">

Что это будет делать, так это убедиться, что ваш путь относительно корня документа (ваш public/-каталог), а не относительно URL-адреса. Это важно, потому что в противном случае ваш путь не будет иметь одинаковый результат в зависимости от того, находитесь ли вы, например, на https: /example.com или на https://example.com/blog, потому что он будет искать ваш CSS в разных местах (либо public/assets/styles/app.css, либо public/blog/assets/styles/app.css).

Спасибо. Я не запускал (yarn encore dev), и в моей общей папке ничего не было. Теперь у меня есть папка сборки, я изменил ссылку css на (<link rel = "stylesheet" href = "/ build / app.css">), и теперь она работает.

StackAtx 30.03.2021 15:18

Если вы используете Encore, использование /build/app.css может быть небезопасным в зависимости от конфигурации вашего веб-пакета. Например, если вы запустите yarn encore prod, он может добавить в файл идентификатор версии, который в вашем примере не улавливается. Обязательно используйте помощники или убедитесь, что ваша конфигурация также обеспечивает ожидаемый результат в prod.

dbrumann 30.03.2021 16:19

Хорошо, но что вы имеете в виду под вспомогательной функцией или помощниками? И у меня нет общедоступной папки с активами. У меня есть папка с активами отдельно от общедоступной, как вы можете видеть на скриншоте из моего первого поста. Это нормально? Срри, я многого прошу, но сейчас я новичок

StackAtx 30.03.2021 18:14

Те, что в {% block stylesheets %} и {% block javascripts %}. Они создадут для вас правильные теги <link> и <script> (если необходимо, иначе они будут пустыми). Вам просто нужно заменить {# #} (комментарий) на {{ }}, например. {{ encore_entry_link_tags('app') }}.

dbrumann 30.03.2021 19:20

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