Symfony 4: JS и CSS, скомпилированные с Webpack, возвращают 404 - PullRequest
0 голосов
/ 12 декабря 2018

Я строю проект с Symfony4 и VueJs, размещенный на сервере nginx и работающий с Docker.Мои шаблоны в порядке, но файлы CSS и JS находятся в 404.

Вот моя конфигурация nginx:

server {
    listen 80;
    listen [::]:80;
    server_name symfony.local;
    root /var/www/myproject/public;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/(index)\.php(/|$) {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;

        internal;
    }

    location ~ \.php$ {
        return 404;
    }

   error_log /var/log/nginx/symfony_error.log;
   access_log /var/log/nginx/symfony_access.log;
}

Я настроил свой файл веб-пакета:

var Encore = require('@symfony/webpack-encore');
Encore
  .setOutputPath('public/build/')
  .setPublicPath('/build')
  .cleanupOutputBeforeBuild()
  .enableSourceMaps(!Encore.isProduction())
  .addEntry('app', './assets/js/app.js')
  .enableBuildNotifications()
  .enableSassLoader()
  .enableVueLoader();
;

module.exports = Encore.getWebpackConfig();

Css иФайлы JS находятся в каталоге assets\js\* и assets\css\*, и когда я компилирую с yarn encore dev, мои собранные файлы находятся в public\build\app.js и public\build\app.css В шаблоне base.html.twig:

{% block stylesheets %}
  {{ encore_entry_link_tags('app') }}
 {% endblock %}

И

{% block javascripts %}
  {{ encore_entry_script_tags('app') }}
{% endblock %}

Файлы также скомпилированы, но у меня ошибка 404 для app.js и app.css.Я сделал, как это объяснено в https://symfony.com/doc/current/frontend.html Так что я не понимаю, чего не хватает.

Спасибо :))

1 Ответ

0 голосов
/ 17 декабря 2018

Проблема решена, это было в docker-compose.yml: В контейнере nginx я забыл смонтировать в томе путь к моему приложению, это было только для контейнера PHP

nginx:
    image: nginx:latest
    container_name: dso_nginx
    hostname: nginx
    ports:
        - 80:80
        - 443:443
    depends_on:
        - php
    volumes:
        - ./docker/nginx/default.template:/etc/nginx/conf.d/default.template
        - ".:/var/www/my-symfony-project:ro"
        - ./logs/nginx/:/var/log/nginx
    env_file:
        - .env
    environment:
        - NGINX_HOST=${NGINX_HOST}
    command: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...