estaticos carga bootstrap archivos python django apache mod-wsgi

python - carga - django styles



Apache no está sirviendo archivos django admin estáticos (3)

Creo que deberías cambiar:

Alias /media/ "/usr/lib/python2.6/site-packages/django/contrib/admin/media"

a:

Alias /static/admin/ "/usr/lib/python2.6/site-packages/django/contrib/admin/media"

Porque tú tienes:

ADMIN_MEDIA_PREFIX = ''/static/admin/''

Permítanme agradecerles a todos ustedes en la comunidad de Stack Overflow por ayudarme con varios errores de Django y Apache (con mod_wsgi). Hasta ahora, he preguntado acerca de 5 preguntas relacionadas y ahora estoy cada vez más cerca de sacar mi contenido en un sitio de producción.

Así que sé que hay muchas preguntas similares sobre esto y he leído un bunch of questions about serving files media static on Django .

Leí sobre STATIC_URL , STATIC_ROOT , el STATIC_ROOT (que pronto quedará obsoleto) y estableciendo un Alias /media/ ... en la configuración de Apache. Traté de probar cada solución una por una, pero no pude hacer que funcionara nada.

Así es como se ve mi sitio de administración en este momento

También estoy teniendo un caso raro donde cualquier subdominio funciona en mi servidor. Por ejemplo, estaba tratando de configurar mi servidor para que http://www.satoshi.example.com/ permitiera mi contenido normal (que no sea de Django), mientras que http://django.satoshi.example.com/ permitiría mi contenido de Django para ser servido. Pero actualmente cualquier subdominio, ya sea satoshi.example.com o blahblahasdas.satoshi.example.com, está sirviendo mis archivos Django (lo sé porque puedo ir a la página /admin en ambos sitios, aunque estarán en diferentes sesiones).

De todos modos, aquí están mis archivos en el servidor que ejecuta CentOS (no estoy seguro de qué versión), Apache 2.2.15 , Python 2.6.6 , django 1.3.1 y mod_wsgi 3.2 .

Voy a publicar lo que creo que es la configuración y los archivos más relevantes a continuación:

Apache lanza estos errores cada vez que reinicio

[Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [notice] SIGHUP received. Attempting to restart [Wed Feb 29 00:45:36 2012] [error] Exception KeyError: KeyError(140249420548064,) in <module ''threading'' from ''/usr/lib64/python2.6/threading.pyc''> ignored [Wed Feb 29 01:45:36 2012] [notice] Digest: generating secret for digest authentication ... [Wed Feb 29 01:45:36 2012] [notice] Digest: done [Wed Feb 29 01:45:36 2012] [warn] mod_wsgi: Compiled for Python/2.6.2. [Wed Feb 29 01:45:36 2012] [warn] mod_wsgi: Runtime using Python/2.6.6. [Wed Feb 29 01:45:36 2012] [notice] Apache/2.2.15 (Unix) mod_auth_pgsql/2.0.3 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.0-fips mod_wsgi/3.2 Python/2.6.6 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations

Aquí está /var/www/html/mysite/apache/apache_django_wsgi.conf que se carga en mi httpd.conf con la opción NameVirtualHost *:80

<VirtualHost *:80> ServerName django.satoshi.example.com ErrorLog "/var/log/httpd/django_error_log" WSGIDaemonProcess django WSGIProcessGroup django Alias /media/ "/usr/lib/python2.6/site-packages/django/contrib/admin/media" <Directory "/usr/lib/python2.6/site-packages/django/contrib/admin/media"> Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing </Directory> <Directory "/var/www/html/mysite"> Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing </Directory> WSGIScriptAlias / "/var/www/html/mysite/apache/django.wsgi" <Directory "/var/www/html/mysite/apache"> Order deny,allow Allow from all </Directory> </VirtualHost>

Aquí está /var/www/html/mysite/apache/django.wsgi

import os import sys paths = [ ''/var/www/html/mysite'', ''/var/www/html'', ''/usr/lib/python2.6/site-packages/'', ] for path in paths: if path not in sys.path: sys.path.append(path) os.environ[''DJANGO_SETTINGS_MODULE''] = ''mysite.settings'' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()

Y finalmente, aquí es parte de /var/www/html/mysite/settings.py

# Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = '''' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = '''' # 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/" PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) STATIC_ROOT = os.path.join(PROJECT_ROOT, ''static'') # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = ''/static/'' # URL prefix for admin static files -- CSS, JavaScript and images. # Make sure to use a trailing slash. # Examples: "http://foo.com/static/admin/", "/static/admin/". ADMIN_MEDIA_PREFIX = ''/static/admin/'' # 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. ) # 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'', )

Avíseme si necesitan otros archivos. ¡Gracias por adelantado!


Eso es porque no has configurado tus archivos STATIC ...

Agregar a la configuración:

STATIC_URL = ''/static/'' STATIC_ROOT = ''/var/www/static/''

Luego ejecuta "python manage.py collectstatic"

Eso pondrá todos los archivos bajo STATIC_ROOT que STATIC_URL servirá ... ¡No debe apuntar a Apache en sus archivos lib de Python!

Si también quieres tus propios archivos estáticos específicos de la aplicación, configura "STATICFILES_DIRS".


Obtuve la solución, miré los archivos access_log dentro de / var / log / httpd /

127.0.0.1 - - [28/Dec/2013:14:49:20 -0500] "GET /static/admin/css/login.css HTTP/1.1" 200 836 "http://127.0.0.1/admin/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111109 CentOS/3.6.24-3.el6.centos Firefox/3.6.24"

así que agregué las siguientes etiquetas en el archivo /etc/httpd/conf/httpd.conf,

Alias /static /usr/lib/python2.6/site-packages/django/contrib/admin/static

dentro de la etiqueta <VirtualHost 127.0.0.1:80>

luego reinicié el servicio usando

service httpd restart

y funciona !!!