python - Django + nginx,只有主页有效
问题描述
我不明白这种行为来自在 gunicorn 上运行的 django 以及来自 nginx 的静态文件托管和端口转发。
项目目录树:
.
├── 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
页面/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/
,但我只能从页面添加主页,而不能添加<docker-machine-ip>/
其他页面?
解决方案
推荐阅读
- r - 添加行 (dplyr)
- css - Material-Ui 如何调整宽度以水平显示项目
- python - Python 中的 My.Resources(vb.net) 等价物是什么?
- python-3.x - 遍历元组的第一个元素时查找元组的索引
- google-sheets - 通过在 Google 表格中使用具有多个数量的单个值来计算数据集的统计数据
- c - CS50 Problem Set 1 (Credit) 2020 需要帮助
- python - 用元素作为分隔符在python中拆分列表?
- python - OpenCV python bitwise_and() 错误皮肤分割
- mount - 如何以 root 身份卸载 gphoto2 设备
- regex - 正则表达式 - 通读文本文档并提取具有特定单词的句子