亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 7 404 路由超過 2 層時出現錯誤

Laravel 7 404 路由超過 2 層時出現錯誤

PHP
慕蓋茨4494581 2023-10-21 19:57:31
我遇到了 Laravel 的有線問題,其中具有多個參數(強制/可選)的路由不起作用。環境信息本地:Windows、XAMPP、PHP 7.3生產:Ubuntu 18.04、PHP 7.4最初,我懷疑 .htaccess 文件有問題,但這似乎不是問題。這在我的本地上完美運行,但由于某種原因,這在 Ubuntu 服務器上不起作用。下面的代碼可以完美運行。Route::any('route/me/','Tst@routeme');但是,以下任何一種都不起作用:Route::any('route/me/here/','Tst@routeme');Route::any('route/me/here/{id?}','Tst@routeme');Route::any('route/me/here/and/here','Tst@routeme');請問有什么建議可以解決這個問題嗎?
查看完整描述

3 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

我的第一個建議是將參數最多的路線放在頂部,例如:


Route::any('route/me/here/and/here','Tst@routeme');


Route::any('route/me/here/{id?}','Tst@routeme');


Route::any('route/me/here/','Tst@routeme');

它更像是最先匹配的路由首先執行,因此從上到下,參數最少的路由最后匹配。


第二件事我建議您將路線分組,例如:


Route::prefix('route/me')->group(function () {

    Route::get('here/and/here', 'Tst@routeme');

    Route::get('here/{id?}', 'Tst@routeme');

    Route::get('here', 'Tst@routeme');

});

為了更好的可讀性...


查看完整回答
反對 回復 2023-10-21
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

我無法詳細說明為什么會發生這種特定情況,但是,匹配您的開發和生產環境應該可以在將來消除這些問題。


家園?

Laravel 團隊提供的 Homestead vagrant box 是一個可靠的選擇,并且有很好的文檔記錄。它是 Ubuntu 18.04 / 20.04 機器,可以配置許多附加組件。您可以使用文件中的一行輕松配置任何給定項目正在使用的 PHP 版本Homestead.yaml

Docker?

Docker 更先進一些,但配置方式非常靈活。它的容器設計允許您將一個項目的依賴關系與下一個項目隔離。


這些設置并不困難(一兩天內即可輕松完成),并且允許您幾乎完美地復制生產環境。

它將在那些“但它可以在我的機器上運行”的時刻提供巨大幫助!


查看完整回答
反對 回復 2023-10-21
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

更新我自己的問題,以便對其他人有所幫助。

我想說這可能是某人(或至少是我)未能檢查的最后一件事。我嘗試列出服務器中的路由,但發現找不到我新添加的路由。

php?artisan?route:list

早些時候,我清除了緩存,重新啟動了apache,但沒有幫助。最后發現當路由被緩存且無法工作時,以下命令是一個救星。所以對我有用的事情是清除“路由”緩存。

php?artisan?route:cache?
php?artisan?route:clear
查看完整回答
反對 回復 2023-10-21
  • 3 回答
  • 0 關注
  • 226 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號