【发布时间】:2012-06-03 16:10:48
【问题描述】:
我在 settings.py
中有一个带有此选项的 Django 1.3 项目SITE_ROOT = os.path.dirname(os.path.realpath(__文件__))
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
TEMPLATE_DIRS = ( os.path.join(SITE_ROOT, 'templates'), )
但在 Django 1.4 中,默认情况下 settings.py 被移动到名称与项目名称相同的子目录中。由于 static、media 和 templates 目录现在必须移动到同一个子目录中?
这是我必须做的,还是只是更改 STATIC_ROOT、MEDIA_ROOT 和 TEMPLATE_DIRS 选项?
我知道这两种变体都可以,但是 Django 1.4 中的最佳实践是什么?
而且我知道每个应用程序都可以拥有自己的模板和静态目录。
将所有其他应用程序目录放在同一个子目录中会更好吗?这不是使用 manage.py startapp 默认发生的情况
【问题讨论】:
-
我看到了这个,但不认为它回答了我的问题。他们只是说两种方式都可以使用
-
哦,好的。那么最好将所有相关的操作代码放在
myproject/myproject下,然后有myproject/tests、myproject/docs等。至于静态/媒体,这取决于,我通常想要我的应用程序自治/可插拔,所以我的每个应用程序都有自己的“静态”文件夹。 -
404.html 呢?把这个模板文件放在哪里?那么作为整个项目的一个媒体目录呢?
-
对于这两种情况,我的项目中几乎总是有一个
website应用程序,而models.py是空的。该应用程序包含一个 index 视图(在其views.py内),因为有时很难判断哪个应用程序应该具有 index('/') 视图!此应用程序还有一个templates文件夹,其中包含 404/500 个页面。我的项目的通用媒体文件也是如此。
标签: django