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

Laravel 8 asset()助手函数URL拼接异常:本地正常但Cpanel部署后出错

解决Laravel 8部署到Cpanel后asset()生成错误URL的问题

这问题我之前帮朋友排查过类似的,大概率是Laravel的配置或者Cpanel虚拟主机的设置出了问题,咱们一步步来解决:

  • 检查.env文件的APP_URL配置
    这是最常见的原因!你需要确保.env里的APP_URL是准确的域名,不要带多余的子路径:

    APP_URL=https://akbooksnepal.acelogicnepal.com
    

    修改完成后,一定要在Cpanel的终端里执行配置缓存清除命令,不然Laravel会继续使用旧的缓存配置:

    php artisan config:cache
    
  • 确认Cpanel虚拟主机的根目录设置
    很多时候部署到Cpanel时,会不小心把网站的根目录指向了public_html/product(如果你的项目放在product文件夹下),但Laravel的public目录才是应该作为站点根目录的。你需要在Cpanel的“域名”或“虚拟主机”设置里,把域名对应的根目录修改为public_html/product/public(假设你的项目在product文件夹内)。
    另外,检查public目录下的.htaccess文件是否是Laravel默认的版本,自定义的重写规则可能会干扰asset路径的解析。

  • 手动指定asset的基础URL
    如果上面的方法都没生效,可以直接在config/app.php里配置asset_url,强制指定asset的前缀:

    'asset_url' => 'https://akbooksnepal.acelogicnepal.com',
    

    同样,修改后要执行php artisan config:cache让配置生效。

  • 尝试添加路径前缀的斜杠
    虽然本地正常,但可以试着把调用改成asset('/asset/script.js')(开头加斜杠),有时候服务器的环境变量解析问题会导致相对路径拼接错误,加斜杠可以强制从域名根目录开始解析。

你可以先从.env的APP_URL和配置缓存入手,这是最容易排查的点。如果还是有问题,可以检查Cpanel的站点根目录设置,或者查看服务器的环境变量是否正确传递给了Laravel。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:42:28