Laravel 9部署至GoDaddy后app.css、app.js等静态资源加载失败求助
调整主机根目录配置
GoDaddy默认可能将网站根目录指向项目根文件夹(APPNAME),但Laravel要求根目录必须是APPNAME/public。登录GoDaddy主机控制面板,找到域名对应的文档根目录设置,修改为public文件夹。这是最常见的原因,根目录错误会导致静态资源路径失效,服务器返回404页面(MIME类型为text/html)。验证资源实际访问路径
打开线上页面的源代码,查看asset()生成的资源URL是否正确。比如正确路径应为https://yourdomain.com/css/app.css,如果显示为https://yourdomain.com/APPNAME/css/app.css,说明根目录或APP_URL配置有误。在项目根目录的.env文件中设置APP_URL=https://yourdomain.com,然后清除配置缓存。检查public目录下的.htaccess文件
确保public/.htaccess存在且配置正确,Laravel默认配置如下:<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>该配置确保静态资源文件(如.css、.js)被直接返回,而非转发到index.php。
强制指定MIME类型
如果服务器对.js或.css文件返回错误的MIME类型,可在public/.htaccess中添加以下规则:AddType text/css .css AddType application/javascript .js这会强制服务器为对应文件返回正确的MIME类型,避免触发浏览器的严格MIME检查报错。
清除缓存
执行以下命令清除Laravel配置和路由缓存:php artisan config:clear php artisan cache:clear php artisan route:clear同时清除浏览器缓存(Ctrl+F5硬刷新),确保加载最新的资源路径和配置。
内容的提问来源于stack exchange,提问作者Thapelo Maluka

