我的style.css
被放置在appname/static/appname/
中。
我的settings.py
具有以下代码:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static/"),
)
然后在我的base.html
中像这样加载它:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'appname/style.css' %}">
但是样式没有加载。
如果删除STATICFILES_DIRS
并将STATIC_URL = '/static/'
更改为STATIC_URL = '/static/appname/'
,它会很好地工作,但是对于以后再将其他任何应用程序添加到项目中的情况,我认为这不是最佳实践。我可能做错了什么?
答案 0 :(得分:0)
在{%static'appname / style.css'%}中删除“ appname”,您不得将其放置在此处,因为python自动知道文件位于哪个应用程序中,它会从请求中获取应用程序名称
答案 1 :(得分:0)
只需改变一件事,
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
它将在您的应用程序内的静态文件夹中搜索。另外,如果您要添加特定的目录,
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"), '/your specific directory/',
)
您可以从此处直接添加特定的文件名,然后djnago将在该特定目录中搜索。
答案 2 :(得分:0)
默认情况下,django从应用程序的目录中选择static
目录。因此,如果您的静态目录位于应用程序目录中,则无需指定STATICFILES_DIRS
。
现在/static/
将指向应用程序静态目录中的文件和目录。要引用您的CSS文件,请使用
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'appname/style.css' %}">