2012-04-16 21 views
7

Esta es la nueva estructura del proyecto (de las notas de la versión 1.4 de Django).Estructura de carpetas estáticas en Django 1.4?

 
myproject 
|-- manage.py 
|-- myproject 
| |-- __init__.py 
| |-- settings.py 
| |-- urls.py 
| `-- wsgi.py 
`-- polls 
    |-- __init__.py 
    |-- models.py 
    |-- tests.py 
    `-- views.py 

Lo que no estoy seguro es de si debería apuntar a STATIC_ROOT

myproject/myproject/static/ (junto con settings.py, urls.py ...)

O

El directorio de nivel superior myproject/static (junto a myproject, myapp1, myapp2)?

+3

No sé cuál es la palabra "oficial", pero creo que el directorio de nivel superior tiene más sentido. – agf

Respuesta

7

STATIC_ROOT no está relacionado con la importación de Python, por lo que depende totalmente de usted. Normalmente, myproject/static/, por lo tanto os.path.join(PROJECT_ROOT, 'static/') en la configuración, es más fácil. actualización

como se sugiere San4ez, y las notas en el interior 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/" 

mejor poner los archivos estáticos de la aplicación poll en poll/static/, de acuerdo a su estructura.

2

Estoy de acuerdo con @okm que myproject/static/ es un buen lugar para la estática, pero también puede almacenar imágenes, css y js dentro de su aplicación en myproject/polls/media. Que usted tiene que configurar django.contrib.staticfiles aplicación y copiar estática de media a STATIC_ROOT con el comando

python manage.py collectstatic 

La ventaja de este enfoque que esto le permite distribuir su aplicación con estática y su aplicación se puede utilizar libremente en otros proyectos

+0

css, js, y las imágenes deberían ser subcarpetas en myproject/myproject/static, así como en myproject/poll/static. Usar una carpeta llamada 'media' es peligroso porque entra en conflicto con el nombre de la carpeta que se usa habitualmente en django para las imágenes y otros archivos cargados por los usuarios. También es una carpeta utilizada por los archivos estáticos del administrador (después de la recopilación estática). Collect static los reunirá para un servidor de producción y luego los servirá desde una carpeta central (generalmente fuera de la estructura de su carpeta de proyectos, como /var/www/www.mysite.com/static). – hobs

1

STATIC_ROOT es solo una ruta de archivo donde la aplicación contrib staticfiles recopilará y depositará todos los archivos estáticos. Es un lugar para recoger artículos, eso es todo. La clave es que esta ubicación es almacenamiento temporal y se utiliza principalmente al empaquetar su aplicación para su implementación.

Las búsquedas de aplicaciones staticfiles para artículos que recogen desde cualquier directorio llamado static en ninguna de las aplicaciones que se enumeran en INSTALLED_APPS y, además, cualquier ubicaciones de ruta de archivos adicionales que figuran en STATICFILES_DIRS.

Para mis proyectos, creo un directorio deploy en el que creo una carpeta www que utilizo para archivos estáticos, y varios otros archivos que solo se usan al implementar. Este directorio está en el nivel superior del proyecto.

Puede señalar la variable a cualquier ubicación en la que su usuario tenga permisos de escritura, no necesita estar en el directorio del proyecto.

Cuestiones relacionadas