我正在使用Django创建一个网站,由于某种原因,我的CSS文件对页面没有任何影响。我已经检查过以确保我的STATIC_URL已定义但仍然没有运气。
我的settings.py:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
在我的博客应用程序内部,我有一个静态目录
blog
|
static
|
css
|
blog.css
我的HTML文档:
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Medicare Supplemental info</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<!-- This is where I'm loading the CSS file -->
<link rel="stylesheet" href="{% static 'css/blog.css' %}">
</head>
我检查过以确保我在settings.py中安装了所需的应用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
我也尝试过更改加载静态文件的方式:
{% load staticfiles %}
为:
{% load static %}
仍然没有运气。我做错了什么?
答案 0 :(得分:1)
我想你在urls.py中错过了这个:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
这项工作在开发中,在生产中你必须使用manage.py收集静态并使用nginx(或apache)提供静态。
答案 1 :(得分:1)
对于django == 2.0.2没有必要更改urls.py,只需在settings.py中获取STATIC_URL
答案 2 :(得分:0)
答案 3 :(得分:0)
我遇到了一些问题,适用于我的解决方案是使用CRTL-BREAK停止服务器,然后重新启动。我正在使用Django v.3.0.7。
答案 4 :(得分:0)
如果您不是像其他情况那样从其他html文件扩展,则html文件中的第一个条目应该是!DOCTYPE html,然后是加载模板标记,即{%load staticfiles%}。
答案 5 :(得分:0)
对于在 django 之后删除设置文件中 os 导入的任何人。
使用 STATIC_ROOT = BASE_DIR / 'static'
而不是 os.path.....
。