Django 部署的文件映射
File mapping for Django deployment
我按照官方 Django 网站上的教程打造了我的第一个 Django 网站,途中进行了大量谷歌搜索。该站点允许我上传图像(存储在“media”文件夹下)并显示它们。它在 Firefox 上本地运行良好。现在我被困在如何部署它上。我主要关注instructions on flailingmonkey.com to try to setup the production environment on justhost. I modified the settings and reorganized folders according to this page by the author of "Two Scoops of Django"。我的本地文件结构看起来像这样。
C:\django_projects
+---< my_project >
| +---< my_project >
| | |--- settings.py
| | |--- urls.py
| | |--- wsgi.py
| | |--- __init__.py
| |
| +---< my_app >
| +---< static >
| | +---< my_app >
| | +---< css >
| | | |--- style.css
| | +---< script >
| | |--- my_javascript.js
| +---< templates >
| +---< migrations >
| +---< __pycache__ >
| |--- admin.py
| |--- urls.py
| |--- models.py
| |--- views.py
| |--- __init__.py
|
+---\assets
| +---< admin >
| +---< my_app >
| +---< css >
| | |--- style.css
| +---< script >
| |--- my_javascript.js
|
+---\static
|
+---\media
据我所知,我应该在部署前使用“collectstatic”来收集所有静态文件(css,脚本),我已经执行了(如反映在文件夹结构)。
我上一次做任何网络开发是大约 10 年前,我记得过去我要做的就是把所有东西都扔到 public_html文件夹。对于 Django dev,有什么不同吗?我应该 ftp 四个文件夹(即 'my_project', 'assets', '上面的static', 'media') 变成public_html到远程服务器?或者我应该 ftp 整个“django_projects”文件夹?我是否需要将包含 settings.py 的 'my_project' 放置在 '[ 之外的某处=71=]'? “assets”和“media”文件夹怎么样?
flailingmonkey.com 上的说明没有明确说明项目文件夹和应用程序文件夹的位置。我已经盲目地尝试了 3 天,并且一直在与未提供的静态文件作斗争。我没有尝试将所有内容都放在 public_html 下,因为在我看来,将包含数据库凭据的设置文件放在那里是一种不安全的做法。请指教
对于你们中的大多数人来说,这可能是一个愚蠢的问题。感谢您耐心看完这么啰嗦的问题。我正在努力使这一点尽可能清楚。
P.S。除了按照说明编写 .htaccess 和 my_app.fcgi 文件外,我还可以考虑更改 'DEBUG settings.py 中的 ' 到 'False'。部署还缺少什么吗?
您不会将 django 项目放入 public_html。通常,Django 会与 mod_wsgi (Apache) 或 uWSGI (nginx) 对话,并使用 wsgi 协议将动态内容返回给服务器进程。静态内容(图像、javascript 等)通常映射到服务器端目录。
我建议阅读 Django 项目页面上的部署页面:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/
我按照官方 Django 网站上的教程打造了我的第一个 Django 网站,途中进行了大量谷歌搜索。该站点允许我上传图像(存储在“media”文件夹下)并显示它们。它在 Firefox 上本地运行良好。现在我被困在如何部署它上。我主要关注instructions on flailingmonkey.com to try to setup the production environment on justhost. I modified the settings and reorganized folders according to this page by the author of "Two Scoops of Django"。我的本地文件结构看起来像这样。
C:\django_projects
+---< my_project >
| +---< my_project >
| | |--- settings.py
| | |--- urls.py
| | |--- wsgi.py
| | |--- __init__.py
| |
| +---< my_app >
| +---< static >
| | +---< my_app >
| | +---< css >
| | | |--- style.css
| | +---< script >
| | |--- my_javascript.js
| +---< templates >
| +---< migrations >
| +---< __pycache__ >
| |--- admin.py
| |--- urls.py
| |--- models.py
| |--- views.py
| |--- __init__.py
|
+---\assets
| +---< admin >
| +---< my_app >
| +---< css >
| | |--- style.css
| +---< script >
| |--- my_javascript.js
|
+---\static
|
+---\media
据我所知,我应该在部署前使用“collectstatic”来收集所有静态文件(css,脚本),我已经执行了(如反映在文件夹结构)。
我上一次做任何网络开发是大约 10 年前,我记得过去我要做的就是把所有东西都扔到 public_html文件夹。对于 Django dev,有什么不同吗?我应该 ftp 四个文件夹(即 'my_project', 'assets', '上面的static', 'media') 变成public_html到远程服务器?或者我应该 ftp 整个“django_projects”文件夹?我是否需要将包含 settings.py 的 'my_project' 放置在 '[ 之外的某处=71=]'? “assets”和“media”文件夹怎么样?
flailingmonkey.com 上的说明没有明确说明项目文件夹和应用程序文件夹的位置。我已经盲目地尝试了 3 天,并且一直在与未提供的静态文件作斗争。我没有尝试将所有内容都放在 public_html 下,因为在我看来,将包含数据库凭据的设置文件放在那里是一种不安全的做法。请指教
对于你们中的大多数人来说,这可能是一个愚蠢的问题。感谢您耐心看完这么啰嗦的问题。我正在努力使这一点尽可能清楚。
P.S。除了按照说明编写 .htaccess 和 my_app.fcgi 文件外,我还可以考虑更改 'DEBUG settings.py 中的 ' 到 'False'。部署还缺少什么吗?
您不会将 django 项目放入 public_html。通常,Django 会与 mod_wsgi (Apache) 或 uWSGI (nginx) 对话,并使用 wsgi 协议将动态内容返回给服务器进程。静态内容(图像、javascript 等)通常映射到服务器端目录。
我建议阅读 Django 项目页面上的部署页面:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/