Python Django:CSS不起作用
我还是django的新手,我的CSS工作有问题。Python Django:CSS不起作用,python,html,css,django,web,Python,Html,Css,Django,Web,我还是django的新手,我的CSS工作有问题。 我遵循了链接中关于处理静态文件的指示。但它仍然不起作用 设置 看法 index.html 和目录组织 src->staticfiles->css->style.css 非常感谢你,非常感谢你的帮助和时间 要让Django服务于静态文件,您必须确保有几个设置 静态URL 此设置指定静态文件应映射到的url。你已经做到了 静态文件\u目录 这将指定系统上Django应在其中查找静态文件的所有文件夹。这个想法是,您的项目中可能有几个应用程序,每
我遵循了链接中关于处理静态文件的指示。但它仍然不起作用
设置 看法
index.html
和目录组织src->staticfiles->css->style.css
非常感谢你,非常感谢你的帮助和时间 要让Django服务于静态文件,您必须确保有几个设置 静态URL 此设置指定静态文件应映射到的url。你已经做到了 静态文件\u目录 这将指定系统上Django应在其中查找静态文件的所有文件夹。这个想法是,您的项目中可能有几个应用程序,每个应用程序可能需要一组不同的静态文件。因此,出于组织目的,每个应用程序可能包含一个
静态
目录,其中只存储静态文件。所以Django必须有办法知道这些目录在哪里。这就是此设置的用途
静态_根
此设置指定Django将所有静态文件复制到的位置,而不是静态文件已经在的位置。这个想法是,一旦您将开发工作投入生产,Django就不能再为静态文件提供服务了,因为我将不在这里讨论这些问题(它在后面)。但是,对于生产环境,所有静态文件都应该位于单个目录中,而不是位于STATICFILES\u DIRS
中指定的许多类似目录中。因此,此设置指定一个目录,Django将通过运行以下命令从STATICFILES\u DIRS
中的所有文件复制所有静态文件:
$ python manage.py collectstatic
请注意,这仅在您投入生产后才有必要,而且此处指定的目录不能与STATICFILES\u DIRS
中指定的任何目录相同
url.py
在Django为静态文件提供服务的开发过程中,必须在URL.py中包含静态URL:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = ...
urlpatterns += staticfiles_urlpatterns()
完成上述所有操作后,只要您有
DEBUG=True
,静态文件就应该被提供。在上面的列表中,您似乎只完成了STATIC\u URL
。另外请注意,我上面描述的所有步骤都在您在问题()中链接的文档中。开始时可能有点混乱,但如果您阅读几遍,就会变得更清楚。将RequestContext添加到响应中应该会将静态URL变量加载到模板中
尝试更改:
from django.shortcuts import render_to_response
def index(request):
return render_to_response('index.html')
致:
有关更多信息,请参阅上的Django文档
There is an easy way if you feel that your CSS isn't working.
如果你的项目不是太大,那么你可以
CSS文件与HTML文件位于同一个文件中。
然后运行它。例如,它将以这种方式运行
`
普罗曼特斯机器人
* {
保证金:0;
填充:0;
}
身体{
背景色:#FF625F;
}
h1,p{
字体系列:无衬线;
文本对齐:居中;
颜色:#323330;
字体大小:100px;
}
p{
字体大小:30px;
}
#输出,#容器{
显示器:flex;
证明内容:中心;
边缘顶部:100px;
}
输入{
背景色:#eee;
边界:无;
字体系列:无衬线;
颜色:#000;
填充:15px 32px;
文本对齐:居中;
文字装饰:无;
显示:内联块;
字体大小:30px;
}
`
这样会很好的。
完成所有操作后,设置DEBUG=True,python collectstatic,清除缓存,如果问题仍然存在,则以匿名模式打开。将您的.css文件复制到静态文件夹中的另一个新的.css文件中,然后运行collectstatic命令。这对我来说是可行的。
我希望这将对您有所帮助。尝试清除缓存。如果您正在使用Google chrome,请转到“设置>清除浏览数据>选择清除缓存的图像和文件”,然后单击“清除数据”(clear data),前提是编码没有问题,也没有显示错误。 然后你可以这样做来解决这个问题 清除缓存: 如果您正在使用Google chrome,请转到您的设置-->清除浏览数据-->
选择“清除缓存的图像和文件”,然后单击“清除数据”如果在开发模式下发生这种情况,请确保在
设置.py
文件中设置DEBUG=True
。还要确保在settings.py
文件中设置了MEDIA\u URL
和MEDIA\u ROOT
,如下所示:
MEDIA_URL = '/mymediafolder/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mymediafolder')
然后在主URL文件myapp/url.py
中,您必须具有以下内容:
from django.conf.urls import url, include
from . import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
#Your url patterns here
]
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
staticfiles\u urlpatterns()
用于在开发模式下为静态文件提供服务。“什么”不起作用?如何使用render()或render_to_response()渲染视图?在settings.py中是否打开了静态文件上下文处理器?是的,我正在使用render\u to\u响应,我将用我的视图更新它。它不工作的css实际上并没有改变我的html。看到这个来处理静态files@OtskimanotSqilal谢谢你的回复,我刚刚用我的STATICFILES\u DIR更新了它,我的css仍然没有显示。你配置STATICFILES\u DIRS
和STATIC\u ROOT
的方式不正确。它们不能包含相同的目录。更多信息请参考我的答案。谢谢你的回复。让我确定我明白了。所以STATICFILES\u DIR实际上是静态文件所在的位置。而STATIC_ROOT是python复制/处理它们的地方吗?是的,但它只会通过运行manage.py
命令来复制它们,而且这只是生产所必需的。在开发过程中,Django将查找并提供位于STATICFILES\u DIRS
中任何目录中的静态文件。我还忘了提到,在视图中,确保您使用RequestContext
来使用{{STATIC\u URL}}
。Kavanaugh Development的答案表明了这一点。好吧,当我调用python manage.py时
from django.shortcuts import render_to_response
from django.template.context import RequestContext
def index(request):
return render_to_response("index.html", context_instance=RequestContext(request))
There is an easy way if you feel that your CSS isn't working.
<head>
<meta charset="UTF-8">
<title>Promantus Bot</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
body {
background-color:#FF625F;
}
h1, p {
font-family: sans-serif;
text-align: center;
color: #323330;
font-size: 100px;
}
p {
font-size: 30px;
}
#output, #container {
display: flex;
justify-content: center;
margin-top: 100px;
}
input {
background-color: #eee;
border: none;
font-family: sans-serif;
color: #000;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 30px;
}
</style>
</head>
<body>
<div id="output"></div>
<div id="container">
<input type="text" id="input" value="">
</div>
</body>
</html>
`
It's going to run fine this way.
MEDIA_URL = '/mymediafolder/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mymediafolder')
from django.conf.urls import url, include
from . import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
#Your url patterns here
]
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)