2017-10-20 3 views
0

Je suis nouveau sur Django. Je veux ajouter mon fichier CSS dans template/index.html, mais je ne sais pas comment le faire sauf en mode DEBUG.Django - les fichiers statiques ne fonctionnent pas

Nom du projet: le mercure

Nom de l'application: gamma

/root/workspace/django/mercury/mercury/settings.py

STATIC_URL = '/static/' 
STATIC_ROOT = '/root/workspace/django/mercury/static/' 

STATICFILES_DIRS = [ 
    '/root/workspace/django/mercury/bootstrap/dist/', 
] 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

/root/espace de travail/django/mercure/gamma/templates/gamma/index.html

<link href="{% static 'css/dashboard.css' %}" rel="stylesheet"> 

Le chemin complet du fichier original dashboard.css

/root/workspace/django/mercury/bootstrap/dist/css/dashboard.css 

Après avoir exécuté 'python manage.py collectstatic' /root/workspace/django/mercury/static/css/dashboard.css

La sortie:

[20/Oct/2017 12:27:48] "GET /static/css/dashboard.css HTTP/1.1" 404 98 

Je suis Il manque quelque chose?

J'ai essayé beaucoup de choses mais je n'ai pas aidé.

Merci d'avance!

[Solution]

C'est ce que je l'ai fait pour résoudre mon problème pour ceux qui sont curieux:

Installer Apache/httpd + mod_wsgi

$ yum install httpd mod_wsgi 

Modifier la configuration htppd

/etc/httpd/conf.d/django.conf

Alias /static /root/workspace/django/mercury/static 
<Directory /root/workspace/django/mercury/static> 
    Require all granted 
</Directory> 

<Directory /root/workspace/django/mercury> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
</Directory> 

WSGIDaemonProcess gamma python-path=/root/workspace/django/mercury:/usr/lib/python2.7/site-packages/ 
WSGIProcessGroup gamma 
WSGIScriptAlias//root/workspace/django/mercury/mercury/wsgi.py 

mode débogage Désactiver dans settings.py

DEBUG = False

Répondre

0

fichiers statiques doivent être servis par votre serveur Web. Le point d'utilisation des fichiers statiques est, qu'un serveur web est plus rapide pour livrer le fichier, s'il n'a pas besoin de passer par django. Donc, vous devez vous assurer que votre serveur Web sert /root/workspace/django/mercury/static/ à l'adresse /static/. En mode DEBUG, vous pouvez diffuser des fichiers statiques avec l'extrait de code publié par @ sandeep-balagopal. Ils fonctionnent donc avec manage.py runserver lorsque vous déboguez.

Voir le documentation pour plus de détails.

+0

Je pensais que Django résoudrait la partie du serveur web pour moi. Merci beaucoup, j'ai installé httpd et le configurer et maintenant cela fonctionne. – Marius