你在一個混合兩個問題:
- 如何在廣告中投放
django-rest-framework
項目ifferent域
- 如何更改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
]
感謝張貼。即使使用gunicorn/nginx設置,它也能工作嗎?這是我的方式,但它仍然顯示'127.0.0.1'。 https://api.nutrislots.com/api/ – mimoralea
哦,我明白了。很可能你已經在nginx配置中丟失了'proxy_set_header Host $ host;'參數。我已經用示例nginx配置更新了答案。 – twil
這甚至不是drf ......我希望我能'+1 * 5'。謝謝twil。 – mimoralea