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

部署在Azure Web App的Laravel应用静态资源路由报错求助

解决Laravel部署Azure Web App后静态资源路由错误问题

问题分析

你遇到的No route registered for '/build/assets/app-c50f6abb.js'错误,本质是静态资源请求被Laravel路由系统接管了——Nginx没有直接返回静态文件,而是把请求转发给了Laravel的index.php,导致Laravel找不到对应路由。

排查与解决步骤

1. 确认静态资源是否存在

先检查服务器上的静态文件是否真实存在:

  • 登录Azure Web App的SSH终端(或通过Kudu工具控制台),执行命令:
    ls /home/site/wwwroot/public/build/assets/
    
    如果看不到对应的JS/CSS文件,说明:
    • 本地未执行前端编译命令(npm run prod或npm run dev)
    • 部署时未将编译后的public/build目录上传至服务器
      解决:本地完成编译后重新部署,确保public/build目录被包含在部署包中。

2. 修改Nginx配置优先处理静态资源

如果文件已存在,但Nginx仍把请求转给Laravel,需为静态资源添加单独的Nginx规则:
在你的Nginx配置中,location /块之前添加以下规则:

location ^~ /build/ {
    try_files $uri =404;
}

该规则会让Nginx优先处理/build/开头的请求,直接返回对应文件;若文件不存在则返回404,不会进入Laravel路由逻辑。

3. 确认Laravel资源引用路径正确

确保页面中引用静态资源时使用Laravel的asset()辅助函数,例如:

<script src="{{ asset('build/assets/app-c50f6abb.js') }}"></script>

这会生成基于应用根URL的绝对路径,避免相对路径导致的请求错误。

4. 验证Nginx配置生效

修改配置后,若有权限则重启Nginx;若无权限,可通过Azure Web App的「重启应用」功能触发配置加载,或重新部署应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:32:47