Django pinax如何学习访问accounts basic项目中的css文件?
我刚开始使用Pinax 0.9a2。基本配置,并部署了“帐户”项目。我注意到,在已安装的应用程序中,我有“pinax_theme_bootstrap”。主页正确显示,css用于基本应用程序主题。如果我浏览页面源代码,在各种各样的东西中,我有这个css 关键是我找不到这条线的来源,也找不到它的实际服务方式。我知道它可能是由pinax_theme_bootstrap应用程序生成的,但我不明白:如果其中没有URL.py来解析上述行并交付文件,那么这个应用程序应该如何运行 该文件已存在,并且位于此处的完整路径中Django pinax如何学习访问accounts basic项目中的css文件?,django,pinax,Django,Pinax,我刚开始使用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
settings.py
中找到STATIC\u ROOT
,STATICFILES\u DIRS
,STATICFILES\u FINDERS
变量url.py
中,您可以找到如下行:url(r“”,include(“staticfiles.url”)
,定义静态文件访问django statifiles
在调试模式下覆盖django默认值runserver
命令,使用StatifileHandler
重写django defualtWSGIHandler
。因此,当您运行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在哪里