Django pinax如何学习访问accounts basic项目中的css文件?

Django pinax如何学习访问accounts basic项目中的css文件?,django,pinax,Django,Pinax,我刚开始使用Pinax 0.9a2。基本配置,并部署了“帐户”项目。我注意到,在已安装的应用程序中,我有“pinax_theme_bootstrap”。主页正确显示,css用于基本应用程序主题。如果我浏览页面源代码,在各种各样的东西中,我有这个css 关键是我找不到这条线的来源,也找不到它的实际服务方式。我知道它可能是由pinax_theme_bootstrap应用程序生成的,但我不明白:如果其中没有URL.py来解析上述行并交付文件,那么这个应用程序应该如何运行 该文件已存在,并且位于此处的

我刚开始使用Pinax 0.9a2。基本配置,并部署了“帐户”项目。我注意到,在已安装的应用程序中,我有“pinax_theme_bootstrap”。主页正确显示,css用于基本应用程序主题。如果我浏览页面源代码,在各种各样的东西中,我有这个css

关键是我找不到这条线的来源,也找不到它的实际服务方式。我知道它可能是由pinax_theme_bootstrap应用程序生成的,但我不明白:如果其中没有URL.py来解析上述行并交付文件,那么这个应用程序应该如何运行

该文件已存在,并且位于此处的完整路径中

MacQuela:~/Work/Projects/test/test/lib/python2.7/site-packages/pinax_theme_bootstrap/static/css $ ls
bootstrap.min.css extra.css
对于静态声明,这是settings.py

STATIC_ROOT = os.path.join(PROJECT_ROOT, "site_media", "static")

# URL that handles the static files like app media.
# Example: "http://media.lawrence.com"
STATIC_URL = "/site_media/static/"

# Additional directories which hold static files
STATICFILES_DIRS = [
    os.path.join(PROJECT_ROOT, "static"),
]

STATICFILES_FINDERS = [
    "staticfiles.finders.FileSystemFinder",
    "staticfiles.finders.AppDirectoriesFinder",
    "staticfiles.finders.LegacyAppDirectoriesFinder",
    "compressor.finders.CompressorFinder",
]

pinax找不到css的具体位置。

我的评论在你的问题下变得太长了,所以我决定试着找一个答案

pinax_theme_bootstrap应用程序中包含bootstrap.css,您可以在theme_base.html模板中看到:

它引用的是从settings.py选项解析的django静态位置。现在,事实上,您在一个稍微修改过的位置看到了这个文件的缩小版本,这让我相信您有另一个django static*应用程序可以为您执行css/js的缩小。最有可能的是正在缩小的
压缩机
应用程序

更新

让您困惑的部分实际上是django如何提供静态文件:

这里没有黑魔法。这很简单。项目中的每个应用程序都可以包含自己的静态/目录,其中将包含该应用程序的静态媒体。您会注意到,在settings.py和上面的链接中,有一个静态选项的组合,另一个包括查找器。这些将定位每个应用程序下的静态媒体。它还允许应用程序不必知道整个绝对url。相反,他们可以在模板中使用{STATIC}来获取根位置

现在,当您使用“runserver”运行dev服务器时,它将为您解析所有静态介质。这就是为什么会发现引导css。Ita在theme_base.html中作为静态url引用

当您准备好投入生产时,显然将不再使用django-dev服务器。然后,您将运行类似于“/manage.py collectstatic”的命令,该命令将把所有静态介质集中到一个位置,然后您可以通过所选的web服务器对其进行服务器访问。我希望这件事能为你澄清。最好查看django文档,因为pinax是django

  • Pinax使用服务于静态文件。您可以在
    settings.py
    中找到
    STATIC\u ROOT
    STATICFILES\u DIRS
    STATICFILES\u FINDERS
    变量

  • 在Pinax帐户基础项目的
    url.py
    中,您可以找到如下行:
    url(r“”,include(“staticfiles.url”)
    ,定义静态文件访问

  • 为了获得更好的视图,
    django statifiles
    在调试模式下覆盖django默认值
    runserver
    命令,使用
    StatifileHandler
    重写django defualt
    WSGIHandler
    。因此,当您运行
    python manage.py runserver
    并访问该站点时,它将确定该请求是否为静态文件请求,如果为true,则查找存储在
    STATICFILES\u DIRS
    设置中的文件(使用
    STATICFILES.finders.FileSystemFinder
    )和每个应用程序的
    static
    子目录(使用
    已安装的应用程序中的
    staticfiles.finders.AppDirectoriesFinder

  • 在这里,
    pinax_主题_引导程序
    是一个Django应用程序,只包含
    static
    目录下的静态文件,默认由pinax帐户库项目安装。静态文件访问由
    staticfiles
    应用程序解决,因此您在
    pinax_主题_引导程序
    下找不到任何
    url.py/code>文件我>
    
  • 当您要将项目部署到产品环境时。您应该使用
    python manage.py collectstatic
    命令收集
    static\u ROOT
    目录下所有有用的静态文件。然后您可以通过Nginx或其他http服务器为该目录提供服务



  • 当您访问时,Django将在
    urls.py
    中匹配此url,直到最后一个
    staticfiles
    config,每个特定配置才会匹配。因此此访问将由
    staticfiles
    解决。根据
    staticfiles\u FINDER
    配置,
    staticfiles
    直接查找
    static
    首先,在您的项目下,如果结果为“无”,那么它将在
    已安装的应用程序中找到名为
    static
    的每个子目录。为什么它需要该应用程序的URL.py?它引用了settings.py中的主static\u URL/static\u ROOT选项。它希望在您的静态位置找到该文件。@jdi:这就是重点。如何找到该文件它找到它们了吗?这些文件不在静态根目录中。它们隐藏在pinax主题引导程序中,它位于lib/python2.6/site-packages/pinax主题引导程序中。另外,我不明白。如果你没有URL.py,你应该如何使用应用程序?我不理解其机制。本教程只介绍有URL.py的应用程序ich用于访问视图。如果没有该模式,它不会显示应用程序。pinax_theme_bootstrap没有任何自己的视图。它只提供一系列模板,您应该从其theme_base.html进行扩展。它不应该有URL.py,也不应该有视图。py@jdi:好的,但他怎么知道从哪里获取css文件从?我看不出这是在哪里指定的。但我还是不明白,pinax_theme_boostrap communic在哪里