2017-10-15 5 views
0

Ich habe den ganzen Tag damit verbracht, eine kleine Django-App auf cPanel zu installieren. Python virtuelle Umgebung eingerichtet, Django-Dateien sind in, Abhängigkeiten installiert ...Django CSS und JavaScript wird nicht geladen

Statische CSS- und JavaScript-Dateien werden nicht ordnungsgemäß geladen.

Der cPanel-Host hat passagier_wsgi.py in mein Django-App-Verzeichnis gestellt, wobei .htaccess auf die wsgi-Datei zeigt, so dass die Anfragen bearbeitet werden.

Die statischen Dateien sind genau dort, wo sie in der Entwicklung waren, und in settings.py

STATIC_URL = "/static/" 
STATIC_ROOT = "/path/to/public_html/static/" 
STATICFILES_DIRS = [("static", "/path/to/myapp/static/"),] 

In templates/base/navigation.html (ich habe auch versucht, {% Last statisch%})

{% load staticfiles %} 
<!DOCTYPE html> 
<html> 
    <head> 
     <title>{% block title %}{% endblock %} | SG</title> 
     <script src="{% static 'js/jquery.min.js' %}" type="text/javascript"></script> 
     <script src="{% static 'js/bootstrap.min.js' %}" type="text/javascript"></script> 
     <script src="{% static 'js/custom.js' %}" type="text/javascript"></script> 
     <link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet" type="text/css"> 
... 

Nach dem Ausführen von Python manage.py collectstatic bekomme ich alle meine statischen Dateien und die einzige Seite, die tatsächlich meine statischen Dateien lädt, ist die Zielseite.

Jede andere Seite (Admin, Blog, etc.) scheint den app/dir-Namen in das link/script-Tag zu schieben, was zu Fehlern führt.

added /blog/ between domain and static url

added /admin/ between domain and static url

Und in meinem templates/Blog/blogs.html

{% extends 'base/navigation.html' %} 
{% block content %} 
    <div class="container"> 
    {% for blog in blogs %} 
     ... 

Hat jemand zuvor begegnet? Was veranlasst die Anfrage dazu?

Ich habe den ganzen Tag so angeguckt, also wenn es irgendwelche Details fehlen, lass es mich wissen, ich mache eine Pause.

+0

Django tut statische Dateien in der Produktion dienen. Sie müssen sie separat einrichten. Es hängt von Ihrem Server ab. –

+0

Ihre URLs könnten relativ sein, das würde erklären, dass sie nur auf der Zielseite arbeiten. Versuchen Sie 'js/jquery.min.js' in'/js/jquery.min.js' zu ändern. –

Antwort

0

in Ihrem HTML-Vorlage versuchen Sie dies:

{% load static from staticfiles %}