the staticfiles_dirs static_root should not found finders files django static

staticfiles_dirs - django static files production



¿Cuál es el camino absoluto de BASE DIR? (3)

Django novato aquí. Tengo problemas para entender el significado de:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

y

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), ''static'') STATICFILES_DIRS = ( os.path.join(os.path.dirname(BASE_DIR), "static", "static"), )

¿Que esta pasando aqui?

Supongo que el " archivo " es el archivo settings.py en el que estamos (?), Por lo que BASE_Dir está a dos carpetas por encima de eso ... es decir, el que tiene manage.py en él?

¿Entonces el STATIC_ROOT, será uno? ¿o dos? directorios desde el BASE_DIR. ¿Se hará la CARPETA STATIC_ROOT para mí? ¿O tengo que hacer uno llamado "estático"?

└── MY_PROJECT ├── BASE_DIR │   ├── MY_APP │   │   └── settings.py │   └── manage.py └── static

¿Lo anterior es correcto para este ejemplo? Entonces, ¿qué diablos / dónde diablos serán las STATIC_FILES_DIRS?


BASE_DIR es el directorio de su proyecto Django. El mismo directorio donde se encuentra manage.py.


Si desea saber dónde se encuentra BASE_DIR, puede imprimirlo en el terminal, simplemente agregue esta línea a su configuración.py:

print "base dir path", BASE_DIR

y runserver para ver resultados.


Si su configuración.py está configurada de esta manera, su sistema de archivos se verá así:

└── MY_PROJECT ├── BASE_DIR │ ├── MY_APP │ │ └── settings.py │ └── manage.py └── static -> STATIC_ROOT └── static -> STATICFILES_DIRS

Pero no es una buena configuración porque mezcla estadísticas estáticas recopiladas y el directorio donde Django intenta encontrar archivos estáticos (por ejemplo, para recopilarlos). Puede ser mejor usar esto:

└── MY_PROJECT └── BASE_DIR ├── my_app │ ├── settings.py │ └── static -> STATICFILES_DIRS ├── manage.py └── deployment ├── collected_static -> STATIC_ROOT └── media -> MEDIA_ROOT

# settings.py BASE_DIR = os.path.dirname(os.path.dirname(__file__)) STATICFILES_DIRS = (os.path.join( BASE_DIR, "my_app", "static"),) STATIC_ROOT = os.path.join( os.path.dirname(BASE_DIR), "deployment", "collected_static") MEDIA_ROOT = os.path.join( os.path.dirname(BASE_DIR), "deployment", "media")

Ahora puede implementar fácilmente sus archivos estáticos y multimedia utilizando su servidor web favorito (Apache, Nginx, etc.) apuntando al directorio de "implementación".

Actualizar:

También agregué una configuración recomendada para MEDIA_ROOT y cambié la ruta para la estática recopilada.