我花了大约2个小时来弄清楚为什么我的django静态文件没有加载。settings.py:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_in_env')]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这是我的一部分base.py:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'styles/bootstrap4/bootstrap.min.css' %}">
<link href="{% static 'plugins/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css'%}%">
下面是我的目录树:
D:.
├───.vscode
├───blog
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───courses
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───lingua
├───main
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───pia
│ └───__pycache__
├───posts
│ ├───migrations
│ │ └───__pycache__
│ └───__pycache__
├───static
│ ├───admin
│ │ ├───css
│ │ │ └───vendor
│ │ │ └───select2
│ │ ├───fonts
│ │ ├───img
│ │ │ └───gis
│ │ └───js
│ │ ├───admin
│ │ └───vendor
│ │ ├───jquery
│ │ ├───select2
│ │ │ └───i18n
│ │ └───xregexp
│ ├───images
│ ├───js
│ ├───plugins
│ │ ├───easing
│ │ ├───font-awesome-4.7.0
│ │ │ ├───css
│ │ │ ├───fonts
│ │ │ ├───less
│ │ │ └───scss
│ │ ├───OwlCarousel2-2.2.1
│ │ ├───parallax-js-master
│ │ ├───progressbar
│ │ └───video-js
│ └───styles
│ └───bootstrap4
├───static_in_env
└───templates
├───blog
├───courses
├───main
└───posts
你能帮我弄清楚为什么静态文件不起作用吗?
3条答案
按热度按时间3qpi33ja1#
你的
STATICFILES_DIR
看起来不对。试试这个:
其中
yourapp
是您的应用程序(而不是您的项目)的名称。现在,在您的模板上,您可以像这样访问它们:
如果您的
static
文件夹中有一个名为css
的文件夹,您可以像这样访问该文件夹中的文件:7gcisfzg2#
如果我理解正确的话,你的代码将在
static_in_env
目录中查找你的css文件,这是由你选择的STATICFILES_DIRS
参数给出的。这个列表是你的静态文件的源,因此将你想在你的项目中使用的所有css脚本的路径添加到这个列表中。一旦你调用collectstatic
,这些文件将被收集到STATIC_ROOT
文件夹(最初应该是空的)中,并且最终可以通过STATIC_URL
在(测试或生产)服务器上访问,例如通过您的浏览器。我想你现在已经自己弄明白了,但是我会尝试在你的代码中用
static
替换static_in_env
,因为这是你的模板中显示的styles
和plugins
的父文件夹。另一方面,你可能希望为每个应用创建static
和template
子文件夹,但这取决于你。顺便说一句,根据我自己的经验:确保你的
BASE_DIR
参数指向你想要的地方。当你创建一个名为“mysite”的项目时,你通常会得到两个相同的目录(mysite/mysite
)(父目录包含manage.py
,子目录包含settings.py
),我总是觉得这有点令人困惑。这能解释你提到的STATIC_ROOT
错误吗?如果Django文档在这方面更积极一点的话,可能不会有什么坏处;)
xu3bshqb3#
对静态目录使用元组:
在基本文件中你有错误,使用这个作为第二个链接: