2017-10-20 172 views
0

我是Django的新手。我想添加我的CSS文件在template/index.html中,但我不知道如何做,除了在調試模式。Django - 靜態文件無效

項目名稱:汞

應用程序名稱:伽瑪

/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', 
) 

/根/工作區/ django的/汞/ gamma/templates/gamma/index.html

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

原始dashboard.css文件的完整路徑

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

運行 '蟒蛇manage.py collectstatic' /root/workspace/django/mercury/static/css/dashboard.css後

輸出:

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

我遺漏了什麼?

我嘗試了很多東西,但沒有幫助。

在此先感謝!

[解決方法]

這是我做過什麼來解決我的問題,對於那些誰是好奇:

安裝Apache /的httpd + mod_wsgi的

$ yum install httpd mod_wsgi 

編輯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 
在settings.py

禁用調試模式

DEBUG = False

回答

0

靜態文件需要您的網絡服務器提供服務。使用靜態文件的意義在於,如果web服務器不需要通過django,則傳輸文件的速度會更快。因此,您需要確保您的網絡服務器在/static/處提供/root/workspace/django/mercury/static/

在DEBUG模式中,您可以使用@ sandeep-balagopal發佈的代碼段來提供靜態文件,因此它們在調試時與manage.py runserver一起使用。

查看documentation瞭解更多詳情。

+0

我認爲Django會爲我解析webserver部分。 非常感謝你,我安裝了httpd並對其進行了配置,現在它可以正常工作。 – Marius