Laravel 项目中图片上传后无法访问的问题

情况:

Laravel 提供了 php artisan storage:link 命令,用于创建符号链接(Symbolic Link),将 storage/app/public 映射到 public/storage。但是上传图片之后 文件目录确实有 但是无法访问。

  1. 删除已经创建的

rm -rf public/storage

  1. 重新创建符号链接:

php artisan storage:link

  1. 检查符号链接是否正确:

ls -l public/storage

2. 检查文件权限

  1. 设置目录权限:

    chmod -R 755 storage/app/public

  2. 设置文件所有者(根据 Web 服务器用户调整):

    sudo chown -R www-data:www-data storage/app/public

3. 检查服务器配置

确保 Nginx 或 Apache 的配置正确,允许访问 public/storage 目录。

server {

listen 8080;

server_name 10.10.205.19;

root /path/to/your/project/public;

index index.php;

location / {

try_files uri uri/ /index.php?$query_string;

}

location /storage {

alias /path/to/your/laravel-project/public/storage;

try_files uri uri/ =404;

}

location ~ \.php$ {

include snippets/fastcgi-php.conf;

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据你的 PHP 版本调整

}

}