2011-07-02 6 views
0

J'ai rencontré ce problème pendant un certain temps et j'ai de la difficulté à le résoudre. En ce moment, je me sers django 1.2.4 et ayant les paramètres suivants:django: impossible de trouver les fichiers statiques

AUTH_PROFILE_MODULE = 'customUsers.UserProfile' 
TEMPLATE_STRING_IF_INVALID = 'Error generating variable' 
DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

ANONYMOUS_USER_ID = -1 

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend', # default 
    'guardian.backends.ObjectPermissionBackend', 
) 



MANAGERS = ADMINS   


TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth", 
            "django.core.context_processors.debug", 
            "django.core.context_processors.i18n", 
            "django.core.context_processors.media", 
            # "django.core.context_processors.static", there is no this function in the file 
            "django.contrib.messages.context_processors.messages", 
            "customUsers.user_cp_context.userCPContext") 


USE_I18N = False 

# If you set this to False, Django will not format dates, numbers and 
# calendars according to the current locale 
USE_L10N = True 

# Absolute filesystem path to the directory that will hold user-uploaded files. 
# Example: "/home/media/media.lawrence.com/" 
MEDIA_ROOT = '/Users/carrier24sg/Documents/workspace/static_teachers/' 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash if there is a path component (optional in other cases). 
# Examples: "http://media.lawrence.com", "http://example.com/media/" 
MEDIA_URL = '/media/' 

# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a 
# trailing slash. 
# Examples: "http://foo.com/media/", "/media/". 
ADMIN_MEDIA_PREFIX = '/media/admin/' 

# Make this unique, and don't share it with anybody. 
SECRET_KEY = '([email protected]#535*vivl#lcv06=v*hvae#&6mx15nzt' 

# List of callables that know how to import templates from various sources. 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
#  'django.template.loaders.eggs.Loader', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

#ROOT_URLCONF = 'myproject.urls' 

#TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
# '/home/carrier24sg/webapps/django/myproject/templates' 
#) 


SITE_ID = 2 

ROOT_URLCONF = 'teachers.urls' 

TEMPLATE_DIRS = (
      '/Users/carrier24sg/Documents/workspace/templates', 
      '/Users/carrier24sg/Documents/workspace/teachers/templates' 
) 



INSTALLED_APPS = (
        'customUsers', 
        'ConsentForm', 
        'teachers.consent_teachers', 
        'django.contrib.auth', 
        'django.contrib.contenttypes', 
        'django.contrib.sessions', 
        'django.contrib.sites', 
        'django.contrib.messages', 
        'conversation', 
        'teachers.student_profiling', 
        'south', 
        'guardian', 
        'persistent_messages',) 

Pour certaines raisons, je ne peux pas servir des fichiers statiques comme js et css. La sortie du serveur de développement affiche 404 erreur "GET /media/common/css/sidebar.css HTTP/1.1" 404 2202 J'ai essayé d'entrer l'url pour le fichier statique sur le navigateur, au lieu de me dire que le fichier ne peut être trouvé (ce que j'attendais), on m'a montré la page de débogage django Using the URLconf defined in teachers.urls, Django tried these URL patterns, in this order: ......The current URL, media/js/conversation_load.js, didn't match any of these.

Question: pourquoi django ne lit pas l'URL http://127.0.0.1:8000/media/js/conversation_load.js comme une demande de fichier statique?

+0

Estimation aléatoire: vous n'avez rien configuré dans votre urls.py pour correspondre 'media'. –

+0

@Daniel, j'en ai une copie sur un webhost distant, pas de configuration à urls.py mais fonctionne tout de même !? – goh

+0

Oui, car vous avez probablement configuré Apache pour qu'il pointe vers le répertoire multimédia. S'il vous plaît lire la fine [documentation] (https://docs.djangoproject.com/fr/1.2/howto/static-files/). –

Répondre

1

par exemple, vous avez votre "média" dossier près settings.py

Ensuite, essayez:

from os import path 
MEDIA_ROOT = path.join(path.dirname(__file__), 'media') 

Où "les médias" vous est le nom du dossier des médias.

En urls.py:

from os import path 
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__), 'media')}), 
0

Avez-vous ajouté dans vos modèles:

{% load staticfiles %} 

Ce charge ce qui est nécessaire.

Questions connexes