laravel生产环境css不加载的根源是apache未启用mod_rewrite模块且documentroot未指向public目录。需执行sudo a2enmod rewrite并重启apache,将虚拟主机documentroot设为项目public绝对路径,并确保directory中allowoverride all启用,同时模板中使用asset()函数引用资源。

Laravel生产环境CSS不加载不是中间件问题,而是Apache服务器配置未对齐导致静态资源路径全部404,根源在mod_rewrite模块未启用且DocumentRoot未指向public目录。
先确认是不是中间件惹的祸
中间件完全不参与CSS/JS等静态资源的响应流程——Laravel路由层根本不会处理/public/css/app.css这类请求,它们应由Web服务器直接返回文件。只要浏览器地址栏里出现server.php或index.php前缀(如http://site.com/server.php/css/app.css),就【100%排除中间件】,因为请求压根没进PHP,更没进Kernel管道。
检查开发者工具Network标签页:所有css/js请求状态码是404而非500,说明Apache连文件都找不到,不是PHP抛错。
核心修复:启用mod_rewrite并重设DocumentRoot
第一步:启用重写模块并重启Apache
sudo a2enmod rewrite → sudo systemctl restart apache2 【必须重启,仅启用模块不生效】
第二步:编辑虚拟主机配置(如 /etc/apache2/sites-available/myapp.conf)
把DocumentRoot从项目根目录(如 /var/www/html/myapp)改为public绝对路径(如 /var/www/html/myapp/public)
第三步:在对应Directory块中确保AllowOverride All已启用,否则.htaccess里的RewriteRule被忽略
模板里资源引用必须用asset()函数
方法一:全局搜索替换硬编码路径
把所有 href="css/app.css"、src="js/app.js" 替换为 href="{{ asset('css/app.css') }}" 和 src="{{ asset('js/app.js') }}"
方法二:验证asset()是否生效
在Blade中临时加一句 {{ asset('css/app.css') }},访问页面看是否输出 /css/app.css(注意不是/public/css/app.css);如果输出带/public/前缀,说明APP_URL配置错误或缓存未清,执行 php artisan config:clear
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











