使用Django developers服务器未显示样式或favico

使用Django developers服务器未显示样式或favico,django,Django,我似乎遇到了一些渲染问题,可能与免费的Django开发服务器(manage.py runserver)有关。我有一个base.html,它也扩展了我的其他文件。基本文件正在使用外部CSS文件进行格式化。当请求调出一个页面时,CSS表中定义的格式不会显示在页面上,但是所有来自基的代码都正确地扩展到了文件中。因此,为了清楚起见,我从浏览器中打开了一个没有显示格式的页面的源代码。我验证了我希望看到的所有代码都是从基础扩展而来的,包括对css文件的调用。然后我从“查看源代码”窗口复制并粘贴到一个新的文本

我似乎遇到了一些渲染问题,可能与免费的Django开发服务器(manage.py runserver)有关。我有一个base.html,它也扩展了我的其他文件。基本文件正在使用外部CSS文件进行格式化。当请求调出一个页面时,CSS表中定义的格式不会显示在页面上,但是所有来自基的代码都正确地扩展到了文件中。因此,为了清楚起见,我从浏览器中打开了一个没有显示格式的页面的源代码。我验证了我希望看到的所有代码都是从基础扩展而来的,包括对css文件的调用。然后我从“查看源代码”窗口复制并粘贴到一个新的文本文件中,该文件具有html扩展名,并保存在与基本文件相同的目录中。然后,不使用服务器,我只是在浏览器中打开文件(双击),所有格式都在那里。地址栏和选项卡区域中使用的“favico”图标也是如此。我可以从浏览器中复制文本并保存,然后不使用服务器重新打开,并显示图标…我做错了什么

另外要明确的是,没有错误消息,只是没有格式。运行服务器时显示的是没有格式的页面文本…因此背景为白色,没有颜色,没有字体格式,只有默认的html格式

url.py可能就是我的问题所在。该站点将网页内容从数据库中提取出来,并将其发送到一个通用html文件,然后该文件将填充页面内容。通用html文件(view.html)从基扩展而来,基由外部CSS文件格式化。所以这些页面实际上并不是独立存在的

在views.py中,它的工作方式基本上基于3个URL:查看、编辑和保存

  • 如果URL不存在,那么views.py文件将调用 edit.html打开一个窗口,其中有一个输入区域,我可以在其中添加 我的密码。然后我点击保存按钮,所有的文本内容 实际上,HTML代码被保存到数据库中
  • 如果数据库中确实存在页面名称,则将提取该页面的内容并发送到View.html
再说一次,这一切都在起作用。查看源代码的浏览器功能显示了我想要的所有信息,我可以将其复制并粘贴到另一个文件中,并且可以正常工作

以下是URL.PY相关行

  url(r'^NWTACOL/page/(?P<page_name>[^/]*)/edit/$', 'NWTACOL.page.views.edit_page'),
  url(r'^NWTACOL/page/(?P<page_name>[^/]*)/save/$', 'NWTACOL.page.views.save_page'),
  url(r'^NWTACOL/page/(?P<page_name>[^/]*)/$', 'NWTACOL.page.views.view_page'),
指向我的css文件的链接是

<link href="../Main_Style.css" rel="stylesheet" type="text/css" />

您是否正在使用staticfiles应用程序和Django 1.3?如果您有DEBUG=True,它应该在路径:/static上自动提供css、js、图像等。如果没有,您需要提供自己的url模式和视图来服务静态媒体


查看dos网址:

您正在使用staticfiles应用程序和Django 1.3吗?如果您有DEBUG=True,它应该在路径:/static上自动提供css、js、图像等。如果没有,您需要提供自己的url模式和视图来服务静态媒体


查看dos网址:

我还假设您使用的是Django 1.3,因为新用户经常会被新的staticfiles实现绊倒:

首先,在
settings.py
中指定
STATIC\u URL
STATIC\u ROOT
。通常的做法是:

import os.path

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
STATIC_URL = '/static/'
如果您的所有静态资源都位于一个或多个应用程序的“静态”目录中,那么您就完成了。当
DEBUG=True
时,Django将在
STATIC\u URL
自动为您提供这些服务

但是,如果您有另一个目录存储静态文件(例如用于站点范围模板的CSS,它不只是应用于一个应用程序)。您必须告诉Django将这些其他目录视为staticfiles目录:

STATICFILES_DIRS = (
    os.path.join(os.path.dirname(__file__), 'assets'),
)
我在这里选择了“资产”,因为您无法使用
媒体根目录(通常为“站点媒体”)来执行此操作
MEDIA\u ROOT
MEDIA\u URL
现在仅用于上传

此外,也不能将文件存储在
STATIC\u ROOT
中。这似乎与直觉相反,但运行
collectstatic
管理命令时,Django只是存储文件的目录。它从未真正从这里提供文件,因为这是生产Web服务器应该做的事情

因此,总而言之,静态资源可能需要三个目录:

  • 用户上传的目录(
    MEDIA\u ROOT
    ,通常为“site\u MEDIA”)
  • collectstatic
    (“STATIC\u ROOT”,通常为“STATIC”)的目录
  • 项目范围静态文件的目录(在中指定
    STATICFILES\u DIRS
    ,可以随意称呼它)
  • 最后,您可能最终也会被服务管理媒体绊倒。其设置为:

    ADMIN_MEDIA_PREFIX = STATIC_URL+'admin/'
    

    我还假设您使用的是Django 1.3,因为新用户经常会被新的staticfiles实现绊倒:

    首先,在
    settings.py
    中指定
    STATIC\u URL
    STATIC\u ROOT
    。通常的做法是:

    import os.path
    
    STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
    STATIC_URL = '/static/'
    
    如果您的所有静态资源都位于一个或多个应用程序的“静态”目录中,那么您就完成了。当
    DEBUG=True
    时,Django将在
    STATIC\u URL
    自动为您提供这些服务

    但是,如果您有另一个目录存储静态文件(例如用于站点范围模板的CSS,它不只是应用于一个应用程序)。您必须告诉Django将这些其他目录视为staticfiles目录:

    STATICFILES_DIRS = (
        os.path.join(os.path.dirname(__file__), 'assets'),
    )
    
    我在这里选择了“资产”,因为您无法使用
    媒体根目录(通常为“站点媒体”)来执行此操作
    MEDIA\u ROOT
    MEDIA\u URL
    现在仅用于上传

    此外,也不能将文件存储在
    STATIC\u ROOT
    中。这似乎