Django + nginx,只有首页有效

时间:2018-08-17 19:18:03

标签: python django docker nginx docker-compose

我不理解这种行为来自在带有静态文件托管和nginx端口转发功能的gunicorn上运行的django。

项目目录树:

.
├── myproj
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── pages
│   ├── __init__.py  
│   ├── apps.py
│   ├── static
│   │   └── pages
│   │       └── index.css
│   ├── templates
│   │   └── pages
│   │       └── index.html
│   ├── urls.py
│   └── views.py

pages / urls.py:

urlpatterns = [
    path('', views.index, name='home'),
    path('static-home/', views.index, name='static-home'),
    ]

myproj / urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('pages/', include('pages.urls')),
    path('', include('pages.urls')),
]

如果我python manage.py runserver,那么在这些URI上一切都会按预期工作

http://127.0.0.1:8000/ 
http://127.0.0.1:8000/static-home/ 
http://127.0.0.1:8000/pages/ 
http://127.0.0.1:8000/pages/static-home/ 

如果我使用gunicorn + nginx进行dockerize (如本博客文章中所述:https://blog.skindc.co.uk/dockerise-django-and-static-files-with-nginx/

然后我看到了另一种行为

good:      http://<docker-machine-ip>/
nginx 404: http://<docker-machine-ip>/static-home/
good:      http://<docker-machine-ip>/pages/
good:      http://<docker-machine-ip>/pages/static-home/

如果需要,我将添加任何其他信息,但是为了使发布简洁,我的所​​有docker文件,docker compose,nginx.conf等都与上面链接的教程中显示的相同。

为什么我可以从<docker-machine-ip>/pages/的页面添加所有URL,但是我只能从<docker-machine-ip>/的页面添加主页呢?

0 个答案:

没有答案