2015-12-11 70 views

回答

7

你在一個混合兩個問題:

  1. 如何在廣告中投放django-rest-framework項目ifferent域
  2. 如何更改API

的URL路徑要回答第一個我會說,「只要做到這一點」。 Django的reverse使用請求的域來構建絕對URL。

更新:不要忘記通過Host標題從nginx/apache。下面是一個示例nginx的配置:

server { 

    location/{ 
     proxy_set_header  Host $host; 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  X-Forwarded-Proto $scheme; 
     proxy_pass    http://127.0.0.1:8000; 
    } 

} 

第二(路徑,安裝點)被設置在urls.py

from django.conf.urls import url, include 
from django.contrib import admin 

from rest_framework import routers 

from quickstart import views 

router = routers.DefaultRouter() 
router.register(r'users', views.UserViewSet) 
router.register(r'groups', views.GroupViewSet) 


urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
    url(r'^v1/', include(router.urls)), # <-------------- HERE 
] 

enter image description here

+0

感謝張貼。即使使用gunicorn/nginx設置,它也能工作嗎?這是我的方式,但它仍然顯示'127.0.0.1'。 https://api.nutrislots.com/api/ – mimoralea

+0

哦,我明白了。很可能你已經在nginx配置中丟失了'proxy_set_header Host $ host;'參數。我已經用示例nginx配置更新了答案。 – twil

+0

這甚至不是drf ......我希望我能'+1 * 5'。謝謝twil。 – mimoralea

相關問題