2012-04-09 14 views
8

Sto provando a spostare il mio progetto django da un'installazione di apache a heroku. A questo punto, tutto sembra funzionare bene tranne che per un problema che sto usando con il metodo PATCH Http (che uso in combinazione con django-tastypie).Heroku e Django con errore 405

Ho un pezzo di middleware che consente questo metodo e ha funzionato sul server Apache che avevo prima. Ora tutto ciò che ottengo è un errore 405 (METHOD_NOT_ALLOWED). I metodi HTTP comuni funzionano ancora (GET, POST, DELETE, POST). Ho anche letto che nginx non supporta OPTIONS (e forse PATCH request?) Per impostazione predefinita e alcune configurazioni devono essere fatte. Da quanto ho letto, nginx restituisce un errore 405 simile per le richieste del metodo OPTIONS. Sono anche abbastanza sicuro che heroku usi un frontend nginx, quindi questo potrebbe essere il problema.

Questo mi porta al mio prossimo numero: non ho idea di come aggiungere le mie intestazioni perché è tutto controllato da heroku. Qualcuno sa esattamente qual è il problema? C'è un modo, oltre ad abbandonare il metodo PATCH (che rende le cose molto più convenienti), per far funzionare il metodo PATCH su heroku?

risposta

8

Patch non è attualmente supportata su Heroku. Non è dovuto a un problema di nginx, ma piuttosto a causa di un problema nel livello di routing. È qualcosa su cui sta lavorando Heroku, ma non è disponibile alcun ETA. Inoltre non hai la possibilità di aggiungere intestazioni personalizzate poiché queste sono controllate per te.

+0

Ho provato a creare questo ticket di supporto con Heroku, ma il loro sistema di supporto ha risposto con "Siamo spiacenti, ma qualcosa è andato storto". Quindi lo posterò qui. Supporto Heroku, Le richieste HTTP PATCH funzionano nella mia istanza di sviluppo locale ma non riescono nell'istanza di staging Heroku. Puoi confermare che Heroku può o non può supportare le richieste HTTP PATCH? Ho trovato questa domanda Stack Overflow (SO) da aprile: http://stackoverflow.com/questions/10069871/heroku-and-django-with-405-error – Erik

+0

che suggerisce che si tratta di una limitazione del routing di Heroku strato. Non ho trovato alcuna menzione nella documentazione di Heroku. La domanda SO suggerisce anche che l'intestazione personalizzata non funzionerà con Heroku, ma li ho usati senza alcun problema. – Erik