Python Django 1.4中的静态文件夹结构?
这是新的项目结构(来自Django 1.4发行说明) 我的项目 |--manage.py |--我的项目 ||--uuu init_uuuuuuuuuuuuuuuuuy.py ||--settings.py ||--url.py |`--wsgi.py `--民意测验 |--_uuuinit_uuuuu.py |--models.py |--tests.py `--views.py 我不确定的是,我是否应该将STATIC_ROOT指向Python Django 1.4中的静态文件夹结构?,python,django,convention,directory-structure,django-1.4,Python,Django,Convention,Directory Structure,Django 1.4,这是新的项目结构(来自Django 1.4发行说明) 我的项目 |--manage.py |--我的项目 ||--uuu init_uuuuuuuuuuuuuuuuuy.py ||--settings.py ||--url.py |`--wsgi.py `--民意测验 |--_uuuinit_uuuuu.py |--models.py |--tests.py `--views.py 我不确定的是,我是否应该将STATIC_ROOT指向 myproject/myproject/static/(连同
myproject/myproject/static/
(连同settings.py、url.py…)
或
顶层目录
myproject/static
(紧挨着myproject,myapp1,myapp2)static\u ROOT
与Python导入无关,因此完全取决于您。通常,myproject/static/
,因此设置中的os.path.join(PROJECT\u ROOT,'static/')
更容易
按照San4ez的建议进行更新,并在settings.py中添加注释
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
根据您的结构,最好将
poll
应用程序的静态文件放入poll/static/
。我同意@okm的观点,即myproject/static/
是静态的好地方,但您也可以在myproject/polls/media
中存储应用程序中的图像、css和js。然后,您必须配置django.contrib.staticfiles
app,并使用命令将static从media
复制到static\u ROOT
python manage.py collectstatic
这种方法的优点是,它允许您使用静态文件传播应用程序,并且您的应用程序可以在其他项目中自由使用
static\u ROOT
只是一个文件路径,staticfiles
contrib应用程序将在其中收集和存放所有静态文件。这是一个收集物品的地方,仅此而已。关键是该位置是临时存储,主要用于打包应用程序进行部署
staticfiles
应用程序在INSTALLED\u apps
中列出的任何应用程序中以及在staticfiles\u DIRS
中列出的任何额外文件路径位置中搜索要从名为static
的任何目录中收集的项目
对于我的项目,我创建了一个deploy
目录,在其中我创建了一个www
文件夹,用于静态文件,以及仅在部署时使用的各种其他文件。此目录位于项目的顶层
您可以将变量指向用户具有写入权限的任何位置,它不需要在项目目录中。我不知道“官方”这个词是什么,但我认为顶层目录更有意义。css、js和图像都应该是myproject/myproject/static以及myproject/poll/static中的子文件夹。使用名为
media
的文件夹是危险的,因为它与django中通常用于用户上载的图像和其他文件的文件夹名冲突。它也是管理员静态文件使用的文件夹(在collectstatic之后)。Collect static确实会将它们收集起来,供生产服务器使用,然后从中心文件夹(通常在myproject文件夹结构之外,如/var/www/www.mysite.com/static)为它们提供服务。
python manage.py collectstatic