Laravel部署后子目录及图片404问题求助(本地正常)
解决方案:Laravel部署后静态资源/自定义目录404问题
1. 修复Storage目录访问(上传图片404)
Laravel默认上传文件存放在storage/app/public目录,该目录无法直接对外访问,需创建软链接关联到public/storage:
cd /var/www/solut.website.com php artisan storage:link
执行完成后,上传的图片可通过https://solut.website.com/storage/xxx.jpg路径正常访问。
2. 解决自定义目录/main/访问404
你的main目录位于项目根目录,但Nginx的root指向public目录,直接访问/main/会触发404,可二选一解决:
方式一:移动目录到public下
mv /var/www/solut.website.com/main /var/www/solut.website.com/public/
移动后直接访问https://solut.website.com/main/即可加载目录内容。
方式二:修改Nginx配置添加路由规则
编辑/etc/nginx/sites-available/solut.website.com.conf,在server块内新增:
location /main/ { root /var/www/solut.website.com; try_files $uri $uri/ =404; }
保存配置后重启Nginx:
systemctl restart nginx
3. 清理Nginx冗余配置
删除配置中以下无效规则(该规则会导致/public/xxx路径访问错误):
# Serving public directory location ~* ^/public/(css|assets|landing|storage|installer|js)/(.*)$ { rewrite ^/public/(css|assets|landing|storage|installer|js)/(.*)$ /public/$1/$2 break; }
4. 确保权限配置正确
重新设置关键目录的权限:
sudo chown -R www-data:www-data /var/www/solut.website.com/storage /var/www/solut.website.com/public sudo chmod -R 755 /var/www/solut.website.com/storage /var/www/solut.website.com/public
5. 清理Laravel缓存
php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear
6. 检查.env配置
确保APP_URL与域名一致:
APP_URL=https://solut.website.com
内容的提问来源于stack exchange,提问作者I.Am.That.JUDE
相关产品推荐
相关产品推荐

