Resultados de Django Static Files en 404

He comprobado algunos de los otros subprocesos al no poder servir contenido estático utilizando la aplicación de archivos estáticos dentro de Django, pero aún no he encontrado una solución.

settings.py

STATIC_ROOT = '/opt/django/webtools/static/' STATIC_URL = '/static/' STATICFILES_DIRS = ( "/home/html/static", ) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) 

Modelo

línea relevante ….

  

Troncos

Desde los registros parece que la ruta es correcta, pero lamentablemente todavía está resultando en un 404 …

 [10/Feb/2013 16:19:50] "GET /static/macmonster/img/macmonster-logo-blue.png HTTP/1.1" 404 1817 [10/Feb/2013 16:19:51] "GET /static/macmonster/img/macmonster-logo-blue.png HTTP/1.1" 404 1817 

Para la publicación local de archivos estáticos, si no ha configurado ningún tipo de recostackción de archivos estáticos y si está ejecutando Django 1.3+, creo que esta es la forma en que debe verse su settings.py al referirse a archivos estáticos

 # 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/" STATIC_ROOT = '' # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/' # Additional locations of static files STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. '/Users/cupcake/Documents/Workspaces/myDjangoProject/someOtherFolderPerhapsIfYouWant/static', ) # List of finder classes that know how to find static files in # various locations. STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) 

Tenga en cuenta que me he dejado el STATIC_ROOT aquí. Esto se debe a que no tengo la necesidad de una colección de archivos estáticos “todavía”.

La recostackción de archivos estáticos es para aliar (deletrear) los problemas con el servicio de varias carpetas de archivos estáticos diferentes, por lo que combinaron la aplicación de staticfiles que se usaba normalmente para ayudar con este problema. Lo que esto hace, y se describe en los documentos, es tomar todos los archivos estáticos de todas sus aplicaciones y colocarlos en una (1) carpeta para facilitar el servicio al poner su aplicación en producción.

Entonces, el problema es que has “perdido” este paso y es por eso que obtienes un 404 cuando intentas acceder a ellos. Por lo tanto, debe utilizar una ruta absoluta a sus archivos estáticos, es decir. en un sistema Mac o Unix debería verse algo como esto:

 '/Users/cupcake/Documents/Workspaces/myDjangoProject/someOtherFolderPerhapsIfYouWant/static', 

Además, podría simplificar y “arreglar” la necesidad de tener una ruta codificada como la que usé para ilustrar y hacer así.

 PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) STATICFILES_DIRS = ( PROJECT_ROOT + '/static/' ) 

Esto solucionaría el problema de portabilidad también. Un buen post de Stackoverflow sobre esto se encuentra aquí.

Espero haberlo aclarado un poco, de lo contrario corríjame si me equivoco ^ _ ^!

Para recostackr y cómo administrar archivos estáticos en las versiones más recientes de Django, lea este enlace La aplicación staticfiles

Cambio

 STATIC_URL = '/static/' 

conjunto

 STATIC_URL = 'http://yourdomain.com/static/' 

es increíble pero, después de 1 hora de buscarlo, la solución resuelve mi problema con archivos estáticos y elimina STATIC_ROOT de STATICFILES_DIRS . STATICFILES_DIRS es solo para recostackr toda la estática en los módulos y almacenarla en STATIC_ROOT .