Laravel 项目中图片上传后无法访问的问题
情况:
Laravel 提供了 php artisan storage:link 命令,用于创建符号链接(Symbolic Link),将 storage/app/public 映射到 public/storage。但是上传图片之后 文件目录确实有 但是无法访问。
1. 删除已经创建的
rm -rf public/storage
2. 重新创建符号链接:
php artisan storage:link
3. 检查符号链接是否正确:
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 版本调整
}
}