CSS и javascript не работают в проекте Symfony

Недавно я начал новый проект в Symfony и все сделал здесь но это не помогло.

Я впервые работаю с Symfony и это мой первый проект. Я строго следую документации и пытаюсь добавить CSS, но теперь он работает. Я использую Encore и скачал Yarn, как сказано в документации. Ниже я загружу часть своего кода. Вроде нормально, но это не так.

html.twig

<!DOCTYPE html>
<html lang = "en" xmlns:th = "http:thymeleaf.org">

<head>
<title>Events & People</title>
<meta charset = "UTF-8">


{% block stylesheets %}
{#{% stylesheets '@AppBundle/public/build/app.css' %}#}
    {{ encore_entry_link_tags('app') }}
    <link src = "/build/app.css" rel = "stylesheet"/>

{#{% endstylesheets %}#}
{% endblock %}
</head>

webpack.config.js

var Encore = require('@symfony/webpack-encore');

Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/')
// public path used by the web server to access the output path
.setPublicPath('/build')
// only needed for CDN's or sub-directory deploy
//.setManifestKeyPrefix('build/')

/*
 * ENTRY CONFIG
 *
 * Add 1 entry for each "page" of your app
 * (including one that's included on every page - e.g. "app")
 *
 * Each entry will result in one JavaScript file (e.g. app.js)
 * and one CSS file (e.g. app.css) if you JavaScript imports CSS.
 */
.addEntry('app', './assets/js/app.js')
//.addEntry('page1', './assets/js/page1.js')
//.addEntry('page2', './assets/js/page2.js')

// will require an extra script tag for runtime.js
// but, you probably want this, unless you're building a single-page app
.enableSingleRuntimeChunk()

/*
 * FEATURE CONFIG
 *
 * Enable & configure other features below. For a full
 * list of features, see:
 * https://symfony.com/doc/current/frontend.html#adding-more-features
 */
.cleanupOutputBeforeBuild()
.enableBuildNotifications()
.enableSourceMaps(!Encore.isProduction())
// enables hashed filenames (e.g. app.abc123.css)
.enableVersioning(Encore.isProduction())

//11111111111
// .enableSassLoader()
//
// // processes files ending in .less
// .enableLessLoader()
//
// // processes files ending in .styl
// .enableStylusLoader()
//11111111111

// enables Sass/SCSS support
//.enableSassLoader()

// uncomment if you use TypeScript
//.enableTypeScriptLoader()

// uncomment if you're having problems with a jQuery plugin
//.autoProvidejQuery()
;

module.exports = Encore.getWebpackConfig();

Вот изображение моего дерева файлов:

CSS и javascript не работают в проекте Symfony

Если все сделано правильно, он должен загружать файлы с моего /build/app.css, но не загружает его.

На всякий случай, ваш public/build/app.css не пустой, верно? Я не знал, что EncoreBundle изменился, поэтому я точно не знаю, что эти функции encore_entry_*. Я посмотрю сегодня вечером. Кроме того, почему у вас есть файл style.scss в /public? И есть ли у вас ошибка во вкладке сети (консоль разработчика браузера)?

Etshy 03.01.2019 16:06

1 Да, он не пустой 2 Когда я читал учебник в здесь и сделал это, он создал общую папку, и в документации было написано, как ее использовать. 3 Да, у меня есть ошибка, но я не знаю, связана ли она с CSS здесь

Todor Dimitrov 06.01.2019 16:55

Хммм где отображается это сообщение? Кажется, что есть проблема не только с CSS / JS, если вся панель отладки ошибается. У вас есть дополнительная информация об этой ошибке или у вас только это сообщение? В консоли браузера (F12> вкладки консоли) есть ли у вас сообщение об ошибке?

Etshy 06.01.2019 21:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
3 514
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Я не искал глубоко, но одна плохая мысль - это ваш тег ссылки ...

Заменить (src на href)

<link src = "/build/app.css" rel = "stylesheet"/>

От

<link href = "/build/app.css" rel = "stylesheet"/>

Вы пробовали это:

<link src = "build/app.css" rel = "stylesheet"/>

удалить только ведущий "/" и посмотреть, работает ли это? хотя не уверен.

Переместите тег ссылки за пределы блока таблицы стилей. И используйте функцию twig asset () вместо абсолютного пути. PS: используйте href вместо src в теге ссылки

<!DOCTYPE html>
<html lang = "en" xmlns:th = "http:thymeleaf.org">

<head>
    <title>Events & People</title>
    <meta charset = "UTF-8">

    <link href = "{{ asset('build/app.css') }}" type = "text/css" rel = "stylesheet"/>

    {% block stylesheets %} {% endblock %}
</head>

Если вы действительно хотите разместить тег ссылки внутри блока таблицы стилей, вы должны вызвать это, используя функцию twig parent () в каждом представлении шаблона.

{% extends 'base.html.twig' %}
{% block stylesheets %}
    {# call the parent content inside stylesheet block #}
    {{ parent() }}

    {# other css code here #}
{% endblock %}

Это тоже не помогло.

Todor Dimitrov 02.01.2019 20:23

Я решил свою проблему, у меня просто ошибка в моем CSS, и yarn не скомпилировал ее

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

Для меня это была проблема кеширования. попробуем удалить кеш.

script и stylesheets должны находиться вне корпуса tag, вот так:

<!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title>{% block title %}Welcome!{% endblock %}</title>
       
    </head>
    <body>
        {% block body %}{% endblock %}
    </body>
     {% block stylesheets %}
        {{ encore_entry_link_tags('app') }}
     {% endblock %}
     {% block javascripts %}
        {{ encore_entry_script_tags('app') }}
     {% endblock %}
</html>

скрипт и таблицы стилей должны быть вне тега body, вот так!

> <!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title>{% block title %}Welcome!{% endblock %}</title>
       
    </head>
    <body>
        {% block body %}{% endblock %}
    </body>
     {% block stylesheets %}
        {{ encore_entry_link_tags('app') }}
     {% endblock %}
     {% block javascripts %}
        {{ encore_entry_script_tags('app') }}
     {% endblock %}
</html>

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