2015-11-24 32 views
2

一個項目我使用野狗/ API和我所有的航線比1Laravel路線完美地在當地工作,但不在偏遠地區。 (巴丁格API)

routes.php文件

$api = app('api.router'); 
    $api->version('v1',['prefix' => 'api'], function ($api) { 

     $api->post('users', "App\Http\Controllers\Auth\[email protected]"); 
... 
     }); 

存儲方法工作的其他:

/** 
    * 
    * @param \App\Http\Requests\Auth\StoreUserRequest $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(StoreUserRequest $request) 
    { 
     if(! $this->isAdminRequest()) 
     { 
      return $this->dispatch(new RegisterUserCommand($request)); 
     } 
    } 

這路由拋出405 Method Not Allowed Exception

php artisan api:routes顯示它已在本地和服務器上註冊。 我使用POSTMAN來測試我的api並且擁有所有必需的字段。 作爲回答我確實收到允許:POST

注:

  • 還有其他郵路的工作完美。
  • 還有其他 UsersController路由,完美的工作
  • 我試過刪除所有其他路由,只是這一點,它仍然無法正常工作。

任何幫助表示讚賞。謝謝。

UPDATE:

好吧,這是我的一個非常愚蠢的錯誤。我打了'domain/api/users /'。刪除尾隨'/'工作。 但事情是,本地'/'工作,而不是在服務器上。 因此,對於某些解釋可能存在這個問題。

+0

控制器類名/控制器文件名,與路徑文件中提到的名稱相同...... ?? –

+0

是的。正如我所說,還有其他用戶路線完美運作。 –

+1

我打電話給它沒有https:// – astroanu

回答

0

非常好的問題,並自此跑到這個自己。你的更新應該在一個答案,所以如果你這樣做,我可能會刪除我的。對我來說,問題是我的action中的尾隨斜線,例如/some/action/而不是/some/action其中路線預期它在後一種形式。

我曾經假設Laravel會將這個可選的尾部斜槓作爲特徵考慮到本地環境中的行爲,但事實並非如此。

+0

我保留這個,因爲我無法找到爲什麼會發生這種情況。我在本地和服務器上有不同的配置。也許是因爲這個。或者可能是因爲任何APACHE配置或.htaccess。 我希望能找到什麼可以影響和導致這種行爲。 –

+0

它是有道理的,因爲你的本地可能在Apache上運行nginx和你的服務器。他們處理事情的方式可能是問題的原因 – Jonathan

+0

不,它既是Apache,也是不同的版本。我會在稍後查看並在此處進行更新。 –

相關問題