2017-10-20 169 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