Ошибка nginx 404 с вмешательством изображения laravel

В настоящее время я получаю сообщение об ошибке, что пакет вмешательства в изображение laravel всегда возвращает ошибку 404 каждый раз, когда я пытаюсь получить доступ к изображению с помощью манипуляции с URL.

Мои изображения хранятся в папке «storage/app/images».

Моя конфигурация nginx:

    server {
    listen   80;

    server_name ######;
    rewrite ^(.*) http://#####$1 permanent;
    }server {
    listen   80;

    # access_log off;
    access_log /home/#####/logs/access.log;
    # error_log off;
    error_log /home/#####/logs/error.log;

    root /home/######/public_html/dtu-feedback-api/public;
    index index.php index.html index.htm;
    server_name ######;

    # Custom configuration
    include /home/######/public_html/dtu-feedback-api/*.conf;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }
    if (!-d $request_filename) {
            rewrite     ^/(.+)/$ /$1 permanent;
    }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            fastcgi_buffer_size 32k;
            fastcgi_buffers 8 16k;
            fastcgi_busy_buffers_size 32k;
            fastcgi_temp_file_write_size 32k;
            fastcgi_intercept_errors on;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    location ~ /\. {
            deny all;
    }
    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }
    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
    }
    location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
            gzip_static off;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
            access_log off;
            expires 30d;
            break;
    }

    location ~* \.(txt|js|css)$ {
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
            access_log off;
            expires 30d;
            break;
    }
}

А вот журнал:

*1 open() "/home/#####/public_html/dtu-feedback-api/public/imagecache/medium/placeholder1.png" failed (2: No such file or directory)

Похоже, он пытался найти изображения по пути imagecache вместо пути storage.

Не могли бы вы помочь мне с этой ошибкой, спасибо.


person Le Dinh Nhat Khanh    schedule 13.03.2017    source источник
comment
У Laravel есть URL BaseRewrite из root-laravel-direction/public. Поэтому я думаю, вам нужно переместить путь к хранилищу изображений в общую папку.   -  person Quynh Nguyen    schedule 13.03.2017
comment
Но это изображения, которые пользователь загружает на сервер, я должен сохранять их на public или нет?   -  person Le Dinh Nhat Khanh    schedule 13.03.2017


Ответы (1)


Я нашел решение, после того, как я удалил

location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
            gzip_static off;
            add_header Pragma public;
            add_header Cache-Control "public, must-revalidate, proxy-revalidate";
            access_log off;
            expires 30d;
            break;
    }

Затем ссылка на изображение начинает работать

person Le Dinh Nhat Khanh    schedule 13.03.2017
comment
Нашли ли вы какое-либо решение, чтобы сохранить этот блок конфигурации и заставить его работать? - person tam; 19.06.2019