2013-01-22 5 views
2

Possible en double:
How to organize and load CSS within Django project/app?Comment configurer des fichiers statiques dans Django

J'ai suivi plusieurs sites sur la façon de configurer les fichiers statiques dans Django. Voici mes étapes.

Configurer le setting.py:

STATIC_ROOT = '/Users/kin/mysite/static' 
STATIC_URL = '/static/' 

Exécutez la commande collectstatic:

python manage.py collectstatic 

Après cela, j'ai vu mon fichier image est copiée dans le STATIC_ROOT.

Puis, dans mon modèle, je tente d'utiliser mon fichier image par:

<img border="0" src="{{ STATIC_URL }}images.jpg" width="304" height="228"> 

Mais il n'y a pas d'image quand je charge sur le navigateur. J'ai vérifié la source de la page et STATIC_URL semble vide.

Quelqu'un peut-il faire la lumière ici?

Merci

+0

Avez-vous ajouté 'django.contrib.staticfiles' à' INSTALLED_APPS'? –

+0

Oui, je l'ai fait. C'est une application par défaut sur le settings.py –

+0

http://stackoverflow.com/a/13549755/790387 –

Répondre

0

Si vous utilisez votre application avec python manage.py runserver alors vous pouvez avoir besoin d'ajouter ce qui suit à la fin de votre URL conf (voir docs).

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

urlpatterns += staticfiles_urlpatterns() 

Le processus de traitement des fichiers statiques avec le serveur de développement de django est différent du processus pour le faire avec un serveur Web de production.

0

vous pouvez essayer avec cette

paramètres d'importation dans urls.py et collez le code ci-dessous dans votre urls.py

if settings.DEBUG: 
    urlpatterns += patterns('django.views.static', 
    (r'^static_media/(?P<path>.*)$', 
     'serve', { 
     'document_root': 'path/to/your/static/folder', 
     'show_indexes': True }),) 

aller maintenant à votre settings.py et modifiez le paramètre comme

MEDIA_URL = '/static_media/' 

# 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/' 

maintenant accéder à votre fichier statique comme

<link rel="stylesheet" type="text/css" href="{{MEDIA_URL}}css/header.css" /> 
3

Ne pas coder le chemin dans votre configuration. Je mets souvent mes fichiers statiques dans mon projet principal, donc mon fichier de configuration ressemble à ceci

import os 
MAIN_PROJECT = os.path.dirname(__file__) 

puis

# 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. 
    os.path.join(MAIN_PROJECT, 'static/'), 
) 

Après cela, vous pouvez utiliser {{ STATIC_URL }} dans votre vue

3

En fait, je suis il juste en utilisant le code suivant:

{% load staticfiles %} 
<img border="0" src="{% static 'image.jpg' %}" width="304" height="228"> 

Cela va rendre t Le chemin STATIC_URL pour moi.

Merci à tous de m'avoir aidé!

Questions connexes