Laravel/Vue3项目public/js/app.js加载报ERR_ABORTED 404问题求助
Laravel项目public目录静态资源404问题排查方案
按优先级依次排查核心问题:
- 静态资源存放位置错误
你提到test.js放在maps.blade.php同级目录,Laravel的blade视图文件默认存放在resources/views/目录下,该目录属于项目内部代码目录,完全不对外网公开可访问。所有需要被浏览器加载的静态资源(js、css、图片等)必须放到public/目录下才能正常访问,请将test.js移动到public/根目录后再测试访问。 - 确认Web服务器根目录配置
标准Laravel部署要求Web服务器(Nginx/Apache)的站点根目录必须指向项目的public文件夹,你当前的配置是将站点根目录指向了/home/blabla/domains/evenuitrusten.nl/,才需要在路径中拼接/bankjesserver/public,这种非标准部署很容易触发路径匹配问题。
修正方案:- Apache站点配置中修改
DocumentRoot为/home/blabla/domains/evenuitrusten.nl/bankjesserver/public - Nginx站点配置中修改
root为/home/blabla/domains/evenuitrusten.nl/bankjesserver/public
配置修改后重启Web服务,对应.env中的ASSET_URL可以直接改为${APP_URL}即可,不需要额外拼接路径。
- Apache站点配置中修改
- 确认静态文件真实存在
先通过SSH登录服务器执行命令验证app.js文件是否真实存在:
如果返回文件不存在,说明你没有执行Vue项目打包命令,请在本地项目根目录执行ls /home/blabla/domains/evenuitrusten.nl/bankjesserver/public/js/app.jsnpm run build,将打包后生成的public/js/app.js、public/css/app.css等文件上传到服务器对应目录。 - 检查静态资源访问规则配置
如果是Apache服务器:- 确认
public/目录下存在Laravel默认的.htaccess文件,默认规则会优先返回存在的静态资源,不存在的请求才转发到Laravel路由处理 - 确认Apache已开启
mod_rewrite扩展,且站点配置中开启了AllowOverride All权限
如果是Nginx服务器:
确认站点配置中存在以下静态资源处理规则:
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri =404; expires 1y; add_header Cache-Control "public, immutable"; } - 确认
- 检查文件权限配置
确认Web服务运行用户(通常是www-data、apache、nginx)拥有public/目录的读取权限,可执行以下命令修复权限:# 修正目录权限 chmod -R 755 /home/blabla/domains/evenuitrusten.nl/bankjesserver/public # 修正文件属主(请替换为你服务器实际的Web运行用户) chown -R www-data:www-data /home/blabla/domains/evenuitrusten.nl/bankjesserver/public
内容的提问来源于stack exchange,提问作者Hubert1957
相关产品推荐
相关产品推荐

