Python 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应在其中查找静态文件的所有文件夹。这个想法是,您的项目中可能有几个应用程序,每

我还是django的新手,我的CSS工作有问题。
我遵循了链接中关于处理静态文件的指示。但它仍然不起作用

设置 看法

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)