Laravel |Конфигурация nginx не находит активов - PullRequest
0 голосов
/ 09 октября 2019

В настоящее время я пытаюсь настроить Laravel 6 с помощью Docker и Nginx.

У меня все работает через php-fpm и nginx, и само приложение загружается отлично.

Проблема в том, чтоЯ сталкиваюсь с тем, что он не может найти ни один из файлов активов.

У меня есть строка в верхней части моего layout.blade.php

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

Я вижу, что файл существует впапка, но она всегда получает 404 внутри Chrome.

Я использую конфигурацию nginx по умолчанию, которая находится на веб-сайте Laravel, с некоторыми незначительными изменениями.

events {}

http {
    server {
        listen 80;
        root /var/www/html/public;

        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";

        index index.php index.html index.htm;

        charset utf-8;

        location / {
            try_files $uri /index.php?$query_string;
        }

        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }

        error_page 404 /index.php;

        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
}

Переход непосредственно кurl http://localhost/css/app.css также дает мне страницу 404 по умолчанию для Laravel.

Буду признателен за любую помощь, так как она ломает мне голову!

Я также могу зайти в контейнер и увидеть, что все файлыв правильных каталогах.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Попробуйте запустить npm run dev внутри терминала в корневой папке вашего проекта, возможно, вы не скомпилировали файлы css / js, полученные с самого начала. Таким образом, вы не сможете получить их правильно, вместо этого вы получите 404 ответа.

0 голосов
/ 09 октября 2019

Попробуйте использовать блок location, который предлагает Laravel, с $uri/ в нем и посмотрите, имеет ли это значение:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...