Laravel部署至EC2后CSS文件加载超时问题求助
Laravel Blade迁移EC2后CSS加载超时问题排查
问题背景
- 浏览器加载CSS时报错:
Failed to load resource: net::ERROR_CONNECTION_TIMED_OUT - 原Cloud9环境正常,迁移至EC2后出现问题
- CSS路径看似正确:
https://(IP地址)/css/OO.css - 相关配置:
- Blade引用:
<link rel="stylesheet" href="{{ asset('css/OO.css', true) }}"> - 文件位置:
public/css/〇〇.css - 已执行权限命令:
sudo chmod -R 777 ./storage sudo chmod -R 777 ./bootstrap/cache sudo chmod -R 777 ./public/css - .env配置:
ASSET_URL=https://(IP address)/public
- Blade引用:
排查方案
1. 检查EC2安全组端口开放
- 确认安全组允许**HTTPS(443端口)**的入站流量,超时错误大概率是端口未开放导致外部无法连接。
- 同时确保出站流量无限制,避免服务器无法响应请求。
2. 修正Web服务器根目录与ASSET_URL配置
- 如果使用Nginx/Apache,需将Web服务器根目录指向Laravel项目的
public文件夹。例如Nginx配置:root /var/www/your-project/public; - 当前
ASSET_URL配置错误:因为Web服务器根目录已指向public,ASSET_URL只需设置为https://(IP address)即可,无需加/public。修改后执行:
清除配置缓存,确保新配置生效。php artisan config:clear
3. 本地测试CSS文件可访问性
- 在EC2服务器上执行
curl命令直接请求CSS文件,验证服务是否正常:curl -v https://(IP address)/css/OO.css- 如果本地请求也超时:说明服务器HTTPS服务配置有问题(如未部署SSL证书、Web服务未启动)。
- 如果本地能正常返回文件内容:问题出在外部网络连接(如安全组、防火墙)。
4. 检查系统防火墙设置
- 查看EC2系统防火墙(如
ufw或firewalld)是否开放443端口:- 对于
ufw:
确认存在sudo ufw status443/tcp ALLOW规则。 - 对于
firewalld:
确认sudo firewall-cmd --list-ports443/tcp在开放端口列表中。
- 对于
5. 修正文件权限(更安全的配置)
- 777权限存在安全风险,建议将
public/css的所有者改为Web服务器用户(如Nginx的www-data,Apache的apache):sudo chown -R www-data:www-data ./public/css sudo chmod -R 755 ./public/css
内容的提问来源于stack exchange,提问作者masa hiro
相关产品推荐
相关产品推荐

