Laravel Backpack Basset资源路径错误及cURL连接失败求助
Laravel Backpack Basset URL生成错误及cURL连接拒绝问题解决
问题概述
- Basset生成的外部资源URL错误:错误路径为
http://localhost/var/www/vendor/backpack/crud/src/resources/assets/css/common.css,正确路径应为http://localhost/storage/basset/vendor/backpack/crud/src/resources/assets/css/common.css - 执行
php artisan basset:check时触发cURL错误:cURL error 7: Failed to connect to localhost port 80: Connection refused
环境配置
Nginx 配置
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; # For https # listen 443 ssl default_server; # listen [::]:443 ssl default_server ipv6only=on; # ssl_certificate /etc/nginx/ssl/default.crt; # ssl_certificate_key /etc/nginx/ssl/default.key; server_name localhost; root /var/www/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fixes timeouts fastcgi_read_timeout 600; include fastcgi_params; } location ~ /\.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } }
Laravel .env 配置
APP_NAME='App' APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack
解决方案
1. 修正Basset URL生成逻辑
- 首先确保Laravel storage目录已创建软链到public目录,在Laradock的workspace容器中执行:
php artisan storage:link - 编辑
config/basset.php配置文件,确保remote部分的url指向正确的公开路径:'remote' => [ 'url' => env('APP_URL') . '/storage/basset', // 其他配置... ],
2. 解决容器内cURL连接拒绝问题
Laradock中Nginx与PHP-FPM是独立容器,PHP容器内的localhost指向自身而非Nginx容器,导致cURL请求失败:
- 修改
.env文件中的APP_URL为Nginx容器的服务名(Laradock默认服务名为nginx):
本地浏览器访问仍使用APP_URL=http://nginxhttp://localhost,Docker内部服务间通过服务名通信。
3. 清除缓存并重新生成资源
依次执行以下命令:
php artisan cache:clear php artisan config:clear php artisan basset:clear php artisan basset:generate
4. 验证修复结果
再次运行检查命令:
php artisan basset:check
此时应不再出现cURL连接错误,且Basset生成的URL会自动指向/storage/basset/路径下的资源。
内容的提问来源于stack exchange,提问作者Heba Fareed
相关产品推荐
相关产品推荐

