Django - 静态文件不起作用

时间:2017-10-20 10:11:31

标签: python django

我是Django的新手。我想在template / index.html中添加我的CSS文件,但除了在DEBUG模式下我不知道怎么做。

项目名称:汞

应用名称:gamma

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

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if let sender = sender {
        // sender is set...

    } else {
        // Handle preparation when there is no sender.
        // Check if there are selected rows
        if let selectedRows = tableView.indexPathsForSelectedRows {

            if let vc = segue.destination as? YourDestination {
                // pass selectedRows to destination controller
            }
        }
    }
}

/root/workspace/django/mercury/gamma/templates/gamma/index.html

let selectedData = selectedRows?.map { dataArray[$0.row].ID }

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

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

运行'python manage.py collectstatic'之后     /root/workspace/django/mercury/static/css/dashboard.css

输出:

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

我错过了什么?

我尝试过很多东西,但没有帮助。

提前致谢!

[解决]

这就是我为那些好奇的人解决我的问题所做的:

安装Apache / Httpd + mod_wsgi

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

编辑htppd config

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

$ yum install httpd mod_wsgi

在settings.py

中禁用调试模式

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

1 个答案:

答案 0 :(得分:0)

静态文件需要由您的网络服务器提供。使用静态文件的关键是,如果不需要通过django,则Web服务器传递文件的速度更快。因此,您需要确保您的网络服务器在网址/root/workspace/django/mercury/static/上提供/static/

在DEBUG模式下,您可以使用@ sandeep-balagopal发布的代码段来提供静态文件,因此在您调试时它们可以与manage.py runserver一起使用。

有关详细信息,请参阅documentation