Laravel从.dev域名切换到localhost后无法登录问题求助
兄弟,我之前也碰到过几乎一模一样的情况——切换域名+目录结构后,Laravel的资源加载和路由很容易出幺蛾子,咱们一步步来排查解决:
先修正.env配置并清缓存
打开项目根目录的.env文件,把APP_URL改成http://localhost/sitename/public,Laravel的资源生成、路由跳转全靠这个配置,之前的.dev域名残留在这里会直接导致资源路径错误。
改完之后必须执行这两个命令清除缓存,不然新配置根本不生效:php artisan config:clear php artisan route:clear修复资源文件的引用路径
如果你的CSS/JS是用Laravel Mix编译的,检查webpack.mix.js里的路径配置,确保用mix('css/app.css')这种方式引用,别写死绝对路径;如果是直接在blade模板里写的静态资源,把<link href="/css/app.css">这种绝对路径改成asset('css/app.css'),这个函数会自动根据APP_URL拼接出正确的子目录路径,不会再跑到localhost根目录找资源。检查登录后的跳转与路由配置
登录成功后页面异常,大概率是跳转的路由对应的视图有问题。先看RedirectIfAuthenticated中间件,确认登录后跳转的路径(比如默认的/home)在子目录下能正常访问;另外检查目标视图里的所有资源引用,是不是都用了asset()或mix()生成路径,别残留之前的.dev绝对路径。清浏览器缓存和Cookie
浏览器很可能缓存了之前.dev域名的Cookie或资源文件,导致切换后加载异常。按F12打开开发者工具,在「网络」选项卡勾选「禁用缓存」,刷新页面试试;或者直接清空浏览器的所有缓存和Cookie,彻底清除旧域名的残留数据。检查public目录的.htaccess
确保public目录下的.htaccess是Laravel默认的重写规则,如果之前修改过,直接从Laravel官方仓库复制一份默认的替换掉,这个文件负责处理子目录下的URL重写,规则错了会导致路由解析异常。
要是以上步骤都试过还不行,去storage/logs/laravel.log里找具体错误日志——比如资源加载失败的具体路径、路由找不到的提示,根据日志再针对性调整就行。
内容的提问来源于stack exchange,提问作者Nenad M

