2017-10-15 219 views
0

我只是花了一整天在cPanel上部署一個小型的Django應用程序。 Python虛擬環境設置,Django文件在,依賴關係安裝...Django CSS和JavaScript未加載

靜態CSS和JavaScript文件未被正確加載。

cPanel主機將passenger_wsgi.py放入我的Django應用程序目錄中,使用.htaccess指向wsgi文件,這就是處理請求的方式。

靜態文件的確切位置,他們在發展,並在settings.py

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

在模板/基/ navigation.html(我也曾嘗試{%負載靜態%})

{% 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"> 
... 

運行python manage.py collectstatic後,我得到了所有的靜態文件,實際加載我的靜態文件的唯一頁面是登錄頁面。

任何其他頁面(管理員,博客等)似乎推送應用程序/目錄名稱到鏈接/腳本標記導致錯誤。

added /blog/ between domain and static url

added /admin/ between domain and static url

在我的模板/博客/ blogs.html

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

有沒有人遇到過嗎?什麼導致請求做到這一點?

我一直盯着這一整天,所以如果有任何細節失蹤請讓我知道,我休息一下。

+0

Django的犯規生產提供靜態文件。你必須單獨設置它們。這取決於你的服務器。 –

+0

你的網址可能是相對的,這將解釋他們只在登陸頁面上工作。嘗試將'js/jquery.min.js'更改爲'/ js/jquery.min.js'。 –

回答

0

在你的HTML模板,嘗試這個辦法:

{% load static from staticfiles %}