You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级PHP至7.2.3后,Laravel5.6使用PHP内置Web服务器无法加载静态资源

解决Laravel 5.6升级PHP 7.2后内置服务器无法访问静态资源的问题

我之前在Windows环境下升级PHP后也碰到过一模一样的静态资源加载问题,结合Laravel 5.6的特性和PHP 7.2在Windows下的表现,给你几个实用的排查和解决方向:

  • 检查静态资源的路径与权限
    先确认public目录下的css、js文件确实存在,且文件路径和你模板中引用的完全一致(注意Windows系统本身不区分大小写,但PHP内置服务器偶尔会对路径大小写敏感,比如模板里写的/css/style.css,实际文件是/css/Style.css就可能加载失败)。另外,右键检查文件属性的“安全”选项卡,确保当前用户有读取这些文件的权限。

  • 排查PHP配置的路径限制
    打开PHP的php.ini配置文件,查找open_basedir项。如果这个配置被设置了特定路径,而你的Laravel项目根目录(包含public子目录)不在允许范围内,就会导致静态资源无法被读取。你可以直接注释掉这个配置(在前面加;),或者把项目路径添加到允许列表中,保存后重启PHP内置服务器再测试。

  • 清除Laravel的缓存文件
    版本升级后,旧的缓存配置可能会干扰资源加载。执行以下命令清除各类缓存:

    php artisan cache:clear
    php artisan config:clear
    php artisan view:clear
    

    清除完成后,重新启动php artisan serve或者php -S命令,再尝试访问静态资源。

  • 使用Laravel的资源URL生成辅助函数
    确保你在Blade模板中是用asset()辅助函数来生成静态资源的URL,比如:

    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
    <script src="{{ asset('js/app.js') }}"></script>
    

    手动写死的相对路径可能会因为路由前缀、服务器根目录设置等问题出错,asset()会自动根据当前请求的根URL生成正确的资源路径,避免路径错误。

  • 更换端口或重置内置服务器
    有时候PHP内置服务器的进程残留或者端口冲突会导致静态文件处理异常。你可以尝试更换端口启动:

    php artisan serve --port=8080
    # 或者
    php -S localhost:8080 -t public
    

    另外,你可以暂时重命名public目录下的.htaccess文件(比如改成.htaccess.bak),因为虽然PHP内置服务器不依赖Apache的.htaccess规则,但Laravel默认的.htaccess如果有错误,也可能间接影响资源加载。如果重命名后静态资源能访问,再排查.htaccess里的规则问题。

内容的提问来源于stack exchange,提问作者caldicot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:37:31