我正在尝试在导航栏上显示图像(徽标)。
我的项目称为“ app_name.ModelName
”(其中mysite-project
是),它包含应用程序“ manage-py
”。
为了上传我的静态文件,我做了以下工作:
1) mysite-project / mysite / settings.py
我添加了:
mysite
2)创建了文件夹STATIC_ROOT = os.path.join(BASE_DIR,"static")
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, '/static/')
]
,并在以下位置添加了我的logo.png:
mysite-project / static / mysite-project / logo.png
3) mysite-project / templates / base.html
static
4)在 mysite-project / mysite / urls.py
{% load staticfiles %}
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="{% url 'home' %}">
<img src="{% static 'mysite/logo.png' %}" height=30 width=30 class="d-inline-block alighn-top" />
Code of Conduct
</a>
</nav>
如何,该图片未显示。我认为文件夹的 settings.py 中存在一些问题,但找不到位置
答案 0 :(得分:1)
问题出在您的STATICFILES_DIRS设置中。如果您加入的路径前面有一个斜杠,那么结果将“忽略”前面的所有参数,之后的所有内容都将相对于root
STATICFILES_DIRS = [
os.path.join(BASE_DIR, '/static/') # This will result in "/static/"
]
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static') # This will result in "<BASE_DIR>/static/"
]
STATIC_ROOT
是您要从中提供文件的目录,并且collect_static
将用您的所有静态文件填充该目录,STATICFILES_DIRS
是Django将从中收集文件的位置。 STATICFILES_DIRS
不应包含STATIC_ROOT
。项目的通常布局是这样的
myproject/ # The root of your repo
myproject/
myapp/
static/ # This is where you put app specific assets
...
static/ # This is where you put your generic static assets. Add this to STATICFILES_DIRS
...
static/ # This is STATIC_ROOT and where your files are served from after being collected
STATICFILES_FINDERS
的默认值将在STATICFILES_DIRS
和中出现在每个应用程序的静态目录中。如果您使用的是git,则应将静态文件夹添加到.gitignore