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

Laravel部署到服务器后路由不更新的问题求助

Laravel部署后路由无法更新的解决方案
  • 检查服务器路由缓存文件
    本地执行php artisan route:clear会删除bootstrap/cache/下的路由缓存文件(如routes.php或routes-v*.php),请确认服务器上对应文件夹内的这类文件已被彻底删除。如果上传后旧缓存文件仍存在,手动删除服务器上bootstrap/cache/下所有以routes开头的文件。

  • 验证虚拟主机的URL重写配置
    路由无法访问常因URL重写未正确配置:

    • Apache环境:确保项目根目录的.htaccess文件为Laravel默认内容:
      <IfModule mod_rewrite.c>
          <IfModule mod_negotiation.c>
              Options -MultiViews -Indexes
          </IfModule>
      
          RewriteEngine On
      
          # Handle Authorization Header
          RewriteCond %{HTTP:Authorization} .
          RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
      
          # Redirect Trailing Slashes If Not A Folder...
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_URI} (.+)/$
          RewriteRule ^ %1 [L,R=301]
      
          # Send Requests To Front Controller...
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^ index.php [L]
      </IfModule>
      
    • Nginx环境:确认服务器配置包含正确的重写规则:
      location / {
          try_files $uri $uri/ /index.php?$query_string;
      }
      

    若使用cPanel等虚拟主机面板,需确保已开启URL重写功能。

  • 确认路由文件上传完整性
    直接在服务器上查看routes/web.php(或对应路由文件)的内容,确认你添加的/test路由已存在。若上传过程中断,可能导致文件未更新,重新上传修改后的路由文件。

  • 清除服务器OPcache缓存
    若服务器开启了OPcache,它会缓存PHP文件内容,即使路由文件更新,仍会读取旧缓存。如果虚拟主机面板有缓存清除选项,直接操作;若无,可临时添加以下路由清除OPcache(使用后删除):

    Route::get('/clear-opcache', function() {
        if (function_exists('opcache_reset')) {
            opcache_reset();
            return 'OPcache cleared';
        }
        return 'OPcache not available';
    });
    

    访问该路由后,再测试/test路由。

  • 检查服务器环境配置
    查看服务器上的.env文件,确认APP_URL与你访问的域名一致,避免路由解析时的域名不匹配问题;同时确认APP_ENV对应的缓存机制是否已被正确清除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 18:52:17