невозможно загрузить изображения ( ошибка 404) с доменом / подкаталогом для laravel на nginx 1. 13

У меня проблемы с загрузкой изображений, сохраненных в каталоге изображений по умолчанию laravel (laravelroot / public / images). Я установил laravel на http: // domain / laravelroot . вот конфигурации:

server {
    listen 80;
    server_name localhost;
    index index.php;
    root /usr/share/nginx/html;

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

location ~ /.well-known {
            allow all;
    }

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
    }

location ^~ /laravelroot {  
            alias /usr/share/nginx/html/laravelroot/public;  
            try_files $uri $uri/ @laravelroot;  

            location ~ \.php {  
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.1-fpm.sock; 
                fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/laravelroot/public/index.php;
                }  
        }  

    location @laravelroot {
        rewrite /laravelroot/(.*)$ /laravelroot/index.php?/$1 last;  
    }

при проверке элемента, его домен относится к http: // localhost / imagefile . когда я открываю изображения на новой вкладке и меняю URL-адрес на http: //localhost/laravelroot/images/imagefile.png , он загружен.

Я попытался указать местоположение изображений в laravelroot директивы.

location ^~ /laravelroot {  
                alias /usr/share/nginx/html/laravelroot/public;  
                try_files $uri $uri/ @laravelroot;  

            location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
                  alias /usr/share/nginx/html/laravelroot/public/images;
                  access_log        off;
                  log_not_found     off;
                  expires           360d;
                  }

            location ~ \.php {  
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.1-fpm.sock; 
                fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/laravelroot/public/index.php;
                }  
        }  

и не сработало. потратил несколько часов, но сегодня ничего не понял

0
задан 29 January 2018 в 07:24
1 ответ

Я нашел проблему. сам laravel должен установить базовый путь для изображений.

Я помещаю все ресурсы в общую папку, затем использую метод HTML :: image (), и мне нужен только аргумент, который является путем к изображению относительно также общая папка:

{{HTML :: image ('images / picture.png')}} При этом создается следующий HTML-код:

http: //localhost/images/picture.png

кажется слишком далеким от ошибки сервера. но все равно спасибо.

0
ответ дан 24 November 2019 в 03:12

Теги

Похожие вопросы