J'ai une application installée (django_tables2) avec son propre dossier de fichiers statiques mais je rencontre des problèmes pour les utiliser en utilisant {{ STATIC_URL }}
. Après avoir lu les docs django, si je lancestatic_url ne résout pas correctement, django 1.4
>>> python manage.py findstatic django_tables2/themes/paleblue/css/screen.css
findstatic localise en effet correctement celui fichier correspondant dans le répertoire des applications de site-packages.
Mon modèle pour la page en question contient:
{% block extrahead %}
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}django_tables2/themes/paleblue/css/screen.css" />
{% endblock %}
et blocs connexes existent dans le modèle parent. Cette page est signifiée au http://127.0.0.1:8000/todo/product_groups/Analytical/
. Cependant, lors de l'exécution du serveur de développement, je reçois un 404 pour le css comme pointage au mauvais endroit:
GET /todo product_groups/Analytical/django_tables2/themes/paleblue/css/screen.css HTTP/1.1 404 2942
ce qui se passe et pourquoi pas le serveur suivant {{ STATIC_URL }}
la même manière que findstatic? J'avais cette même static_url css qui fonctionnait avant de refaire des url, mais je n'arrive pas à le faire fonctionner dans le nouveau design. Toute aide ou idée serait grandement appréciée.
extraits pertinents de settings.py:
MEDIA_URL = '/media/'
STATIC_ROOT = 'C:/Users/riedldar/Documents/Code/Arclin/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"C:/users/riedldar/Documents/Code/Arclin/Arclin/static",
)
INSTALLED_APPS = (
....
'django.contrib.staticfiles',)
# Required for tables2
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",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request",
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
de urls.py:
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Arclin.views.home', name='home'),
# url(r'^Arclin/', include('Arclin.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
# Todo/Task manager
url(r'^todo/', include('todo.urls')),
# Login/out
url(r'^login/$', 'django.contrib.auth.views.login'),
url(r'^logout/$', 'Arclin.views.logout_page'),
# User Homepage
url(r'^$', 'todo.views.user_home'),
#
)
et Todo \ urls.py
from django.conf.urls.defaults import *
#from models import ProductGroup
urlpatterns = patterns('',
(r'^product_groups/([\w-]+)/$', 'todo.views.items_by_product_group'),
url(r'^task/(?P<task_id>\d{1,6})$', 'todo.views.view_task', name='todo_task_detail')
)
Merci Piet. Vous avez réussi. J'ai modifié mon todo.views.items_by_product_group lors du changement autour de l'URL et est passé d'une vue générique à une fonction de vue régulière. – riedldar
Comme expliqué dans votre lien, j'ai dû ajouter 'context_instance = RequestContext (request))' comme argument à render_to_response et une fois que je l'ai fait, le 'STATIC_URL' est utilisé. Déclaration finale de retour: 'return render_to_response ('items_by_product_group.html', {'incomplete_table': table incomplète, 'completed_table': completed_table}, context_instance = RequestContext (requête))'. Jetez un oeil à la nouvelle balise de modèle 1.4. Merci encore! – riedldar
Vous pouvez utiliser un autre raccourci pour cela: 'render (request, template, data)'. Cela fait la même chose que 'render_to_response (template, data, context_instance = RequestContext (request))'. –