Django admin pas de servir les fichiers statiques?

Django 1.6

Je vais avoir de la difficulté à servir mes fichiers statiques pour mon Django Admin.

urls.py:

urlpatterns = patterns('',
    url(r'^$', 'collection.views.index', name='home'),
    url(r'^collection/', include('collection.urls')),
    url(r'^admin/',    include(admin.site.urls)),
)

if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
        }),
)

settings.py

...
MEDIA_ROOT = '/Users/me/projectdir/media/'
MEDIA_URL = 'media/'

STATIC_ROOT = '/Users/me/projectdir/static/'
STATIC_URL = 'static/'
...

modèle (base.html)

<!DOCTYPE html>
<html lang='en-us'>
<head>
<title>Mysite</title>

{% load static %}
{% block links %}
    <link href="{% static 'css/bootswatch-simplex.css' %}" rel="stylesheet" type="text/css">
    <link href="{% static 'css/custom.css' %}" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="{% static "favicon.ico" %}">
{% endblock %}

<script src="{% static "lib/bootstrap-3.1.1-dist/js/bootstrap.js" %}"></script>
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script>
</head>
...

Django est de servir mon admin OK, juste sans les fichiers statiques: CSS, JS, etc.

Fichiers statiques pour mon public face pages, beau travail.

Si je change STATIC_URL à '/static/', puis le en face de est vrai: l'admin est très bien, mais mes pages publiques de perdre leurs fichiers statiques.

Voici le plus étrange de la partie. Si je "afficher la source" de mes pages d'administration dans mon navigateur, il affiche la bonne URL pour les pages statiques, par exemple:

/static/admin/css/base.css

Mais si j'ai fait suivre le lien, il change à ceci:

http://localhost:8000/admin/static/admin/css/base.css

Je pense que c'est la vérification pour les fichiers statiques par rapport à localhost:8000/admin/static/ au lieu de simplement localhost:8000/static/. Il ajoute un supplément de "admin" au niveau de l'url, comme static fait partie du domaine. Je ne peux pas comprendre comment se débarrasser de lui.

J'ai essayé collectstatic, mais il n'aide pas. Les fichiers statiques sont dans mon répertoire statique, ils sont tout simplement pas être servi. Je peux taper dans, disons, http://localhost:8000/static/admin/css/base.css et je reçois le bon fichier CSS (en clair). Les fichiers sont là. Je parie que quelque chose est incorrect avec ma configuration.

J'ai vidé mes caches, redémarré mon serveur de dev, etc. Pas de haricots.

idées?

Pouvez-vous montrer le code dans votre modèle où vous essayez d'accéder à vos fichiers statiques?
Vous n'avez pas besoin urlpatterns dans urls.py. Essayez de retirer et de vérifier par la mise en STATIC_URL = '/static/'
Je vous remercie de votre intuition. J'ai mis à jour mon code ci-dessus. J'ai aussi essayé de l'enlever {% filter escapejs %}{% static "admin/" %}{% endfilter %} en vain.
Je ne suis pas sûr de ce que tu veux dire? Entendez-vous d'avoir juste un ensemble de url(...)s sans urlpatterns wrappers?
vous n'avez pas besoin, le code supplémentaire après si debug==TRUE.

OriginalL'auteur allanberry | 2014-05-19