dtsc1684
dtsc1684
2017-03-13 11:53

laravel图像干预的nginx 404错误

已采纳

Currently, I'm getting an error that the laravel image intervention package always return 404 error every time I try to access an image via URL manipulation.

My images are stored in 'storage/app/images' folder

My nginx config:

    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;
    }
}

And here is the log:

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

Look like it tried to find the images in the imagecache path instead of the storage path.

So could you please help me with this error, thank you.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • duanjiaoxi4928 duanjiaoxi4928 4年前

    I found the solution, after I remove the

    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;
        }
    

    Then the image link starts working

    点赞 评论 复制链接分享