新DigitalOcean Droplet上新路由/URL失效,本地及其他Droplet正常
问题:新DigitalOcean Droplet上Laravel新路由失效,旧路由正常
我们的项目采用Laravel 9 + Inertia + VueJs 3技术栈。近期发现,新创建的DigitalOcean Droplet上新路由无法正常工作,但本地环境及其他DigitalOcean Droplet上均运行正常,且该新Droplet使用了与其他Droplet相同的应用模板。
复现步骤
部署最新代码后发现该问题,旧路由可正常运行,但新路由失效,排查过程如下:
- 点击「保存」操作本应向API发起请求:
const saveSelection = () => { axios .post(route('clinician.set-device'), { use_case_setting_id: deviceSlotId.value, device_data: devices.value[selectedOption.value], }) .then(() => { ... };
- 请求并未发起,浏览器控制台无任何错误日志输出
- 在服务器上以「watch」模式运行Vue应用,控制台出现如下错误:
Uncaught Error: Ziggy error: route 'clinician.set-device' is not in the route list.
- 使用
php artisan route:list命令确认该路由在服务器上存在 - 尝试执行以下命令清除Laravel缓存,但问题仍未解决:
php artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear
后续测试
将路由替换为直接链接后,收到404响应:
const saveSelection = () => { axios .post('/api/clinician/set-device', { use_case_setting_id: deviceSlotId.value, device_data: devices.value[selectedOption.value], }) .then(() => { ... };
检查现有API路由,均运行正常。最后在routes/api.php文件中添加新测试路由,它出现在路由列表中但仍返回404:
Route::get('test', function () { return response()->json(['message' => 'Hello World!']); });
核心疑问
为何旧路由及URL可正常工作,但新路由却无法运行?
内容的提问来源于stack exchange,提问作者Vlodko
相关产品推荐
相关产品推荐

