Izz*_*zzo 14 python django django-staticfiles
我对Django 'staticfiles'
应用程序中STATIC_URL和STATIC_ROOT之间的区别感到困惑.
我相信我理解STATIC_ROOT
它是什么:它本质上是服务器上的位置,staticfiles' collectstatic
命令将放置从django项目收集的静态文件.该collectstatic
命令将搜索您在STATIC_FINDERS
设置中指定的位置.
但是,究竟做了STATIC_URL
什么呢?这应该是什么?显然,它旨在设置一些用户可以访问静态文件的东西.但这与它的关系是什么STATIC_ROOT
?
为什么STATIC_URL
简单的默认值/static/
?是否STATIC_URL
必须能够参考STATIC_ROOT
?
AKS*_*AKS 14
就像你提到的那样,从文档中可以很清楚地看出:
STATIC_ROOT:
collectstatic
将收集静态文件以进行部署的目录的绝对路径.STATIC_URL
默认值:无
引用位于的静态文件时使用的URL
STATIC_ROOT
.示例:
"/static/"
或"http://static.example.com/"
虽然,STATIC_ROOT
它只是收集静态文件的目录的路径,但是STATIC_URL
将为这些静态文件提供服务的URL.
而且,正如您在示例中所看到的,您可以将其定义STATIC_URL
为子域,"http://static.example.com/"
并在模板中使用它时:
<link rel="stylesheet" href="{{ STATIC_URL }}css/base.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
它将被视为:
<link rel="stylesheet" href="http://static.example.com/css/base.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
但是,如果STATIC_URL
恰到好处/static/
,上述链接将指向:
<link rel="stylesheet" href="/static/css/base.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
并且,因为这href
开始/
它将附加您的域以访问静态文件: http://yourdomain/static/css/base/css
为什么
STATIC_URL
简单的默认值/static/
?STATIC_URL必须能够参考STATIC_ROOT
吗?
默认值STATIC_URL
不是,/static/
但您可以在文档中看到.并且,它不必引用,STATIC_ROOT
因为它不依赖于它(如上例所示).
STATIC_URL
static
只是添加到静态文件前面的前缀或 url,主要由 Django 模板中的方法使用。欲了解更多信息,请阅读此内容。
STATIC_ROOT
是运行时部署静态文件的目录或位置collectstatic
。
因此,当您STATIC_URL
定义为时,您的用户将从(服务器上的相对 URL) /static/
请求静态文件。/static/file-name.example
如果您已自定义collectstatic
将静态文件部署到另一台服务器,则可以设置STATIC_URL
为https://static.example.org/
.
然后,您可以在 访问您的文件https://static.example.org/filename.ext
。
我的另一个例子是使用 Boto S3 库将静态和媒体内容上传到 Amazon S3。我的STATIC_URL
看起来像这样:
STATIC_URL = '//%s/%s/' % (CLOUDFRONT_DOMAIN, STATIC_S3_PATH)
Run Code Online (Sandbox Code Playgroud)
它构建了一个像这样的静态 URL 前缀,//mycloudfront.whatever/static/
以便用户可以从我们的 CDN 获得文件。
然而我的STATIC_ROOT
定义是:
STATIC_ROOT = '/%s/' % STATIC_S3_PATH
Run Code Online (Sandbox Code Playgroud)
...因为我需要将内容上传到 Amazon S3 而不是Cloudfront。
归档时间: |
|
查看次数: |
5272 次 |
最近记录: |