rutas files estaticos carga bootstrap archivos django static http-status-code-404

files - django styles



Django archivos estáticos 404 (9)

No puedo hacer que suban mis archivos estáticos. He intentado varias configuraciones y configuraciones de directorio, etc., pero simplemente aparecen como 404s. He instalado debug_toolbar, así que sé que STATIC_URL está llegando a mi contexto de solicitud.

La estructura del directorio muestra / estática (también he colocado el directorio dentro de la carpeta de la aplicación de comidas y los usuarios, solo para probarlo

/mealmate /mealmate /meals /static /css /bootstrap.min.css /templates /users

Settings.py (algunas configuraciones importantes, aunque he experimentado con una variedad de otras):

MEDIA_ROOT = os.path.join(PROJECT_PATH, ''media/'') STATIC_URL = ''/static/'' INSTALLED_APPS = ( ''django.contrib.auth'', ''django.contrib.contenttypes'', ''django.contrib.sessions'', ''django.contrib.sites'', ''django.contrib.messages'', ''django.contrib.staticfiles'', ) WSGI_APPLICATION = ''mealmate.wsgi.application''

En base.html renderizado

<link rel="stylesheet" href="/static/css/bootstrap.min.css">

¿Algunas ideas? Gracias


Asegúrate de que tu compañero de comida esté en tu INSTALLED_APPS


Esta es la solución de trabajo para el acceso estático / de medios / plantillas en django para Windows,

settings.py

import os.path STATIC_ROOT = '''' STATIC_URL = ''/static/'' STATICFILES_DIRS = ( os.path.join(''static''), )


Para mí, esto resultó ser causado por la configuración de la depuración en falso en settings.py . Una solución alternativa es pasar el conmutador --insecure al runserver de runserver , pero la solución real es utilizar un servidor web adecuado para servir los archivos estáticos. Vea las respuestas a esta pregunta para más detalles.


Si está ejecutando esto en un servidor web, ¿está copiando los archivos estáticos a una carpeta de acceso público? Por ejemplo:

# web accessible folder STATIC_ROOT = ''/home/your_name/www/mealmate/static/'' # URL prefix for static files. STATIC_URL = ''/static/'' # Additional locations of static files STATICFILES_DIRS = ( # location of your application, should not be public web accessible ''/home/your_name/website/mealmate/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'', )

Luego puede usar esta publicación de Archivos estáticos de Django y copiar los archivos estáticos en la carpeta de acceso público usando manage.py

# --link Create a symbolic link to each file instead of copying. # --noinput Do NOT prompt the user for input of any kind. # python manage.py collectstatic -link --noinput

¡Espero que ayude!


Simplemente agregué el equivalente de

STATICFILES_DIRS = ( ''/absolute_path_to_project/mealmate/static'', )

para que esto funcione Por supuesto, reemplace absolute_path_to_project con su ruta real y, si es necesario, agregue la letra de la unidad.


Supongo que estás usando Django1.3 + aquí.

En primer lugar, necesitas definir algunas configuraciones más:

STATICFILES_FINDERS = [ ''django.contrib.staticfiles.finders.FileSystemFinder'', ''django.contrib.staticfiles.finders.AppDirectoriesFinder'', ] STATICFILES_DIRS = [ path.join(TOP_DIR, ''static''), ] STATIC_ROOT = path.join(TOP_DIR, ''staticfiles'') STATIC_URL = ''/static/''

Esto debería ayudarte a encontrar ese directorio.

Además, siempre debes acceder a tus archivos estáticos usando la STATIC URL :

<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.min.css">


También me quedé atrapado en el problema 404 hasta que me di cuenta de que Apache había bloqueado las solicitudes al directorio estático. Utilicé python manage.py collectstatic para copiar todos los archivos estáticos al directorio estático debajo de la raíz de mi proyecto, es decir, / var / my / site / static . Con

Alias /static /var/my/site/static <Directory /var/my/site/static> Require all granted </Directory>

en /etc/httpd/conf/httpd.conf , ahora funciona correctamente.

Si ninguna de las respuestas anteriores funciona, puede considerar verificar la configuración de su servidor.


de los comentarios anteriores - ejecute este

python manage.py findstatic --verbosity 2 css/styles.css

No se encontró un archivo coincidente para ''css / styles.css''.

Buscando en los siguientes lugares:
/ Users / yourname / Documents / Workspace / test / staticfiles

Simplemente renombré mi carpeta estática a archivos estáticos y todo estaba bien. (Estoy en osx + django 1.x)

el modo de uso inseguro puede no doler si está en una caja de desarrollo local; de lo contrario, aún puede obtener errores 404.

python manage.py runserver --insecure

ACTUALIZAR

en realidad cavar en settings.py encontró la línea infractora.

STATICFILES_DIRS = ( os.path.join(BASE_DIR, ''staticfiles''), )


en Django tienes una ventaja más para tus plantillas y es que puedes vincular estadísticas como esta y tal vez este sea tu problema.

<script src="{% static ''myapp/bootstrap.min.js'' %}"></script> <link href="{% static ''myapp/bootstrap.css'' %}" rel="stylesheet" type="text/css"/>

es mejor usar

{% static ''nombre de archivo''%}

y también es más fácil saber más, me refiero a https://docs.djangoproject.com/en/1.11/intro/tutorial06/