当前位置: 首页 > 面试题库 >

Django上静态STATIC_URL和STATIC_ROOT的区别

岳阳飙
2023-03-14
问题内容

我被弄糊涂了static root,想澄清一下。

要在Django中提供静态文件,以下代码应位于settings.py和中urls.py

import os
PROJECT_DIR=os.path.dirname(__file__)

1.收集静态文件的目录的绝对路径

STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')

2.静态文件的URL前缀

STATIC_URL = '/static/'

3.静态文件的其他位置

STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)

…以及urls.py以下几行:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
    r'^static/(?P<path>.*)$',
    'django.views.static.serve',
    {'document_root': settings.STATIC_ROOT}
))

4.我们也使用 python manage.py collectstatic
问题:

  1. 谁能向我解释工作流程:理想情况下应该如何做。到目前为止,我将上述代码段复制/粘贴到它们的指定位置,然后继续在静态目录中创建新文件,并且可以正常工作。settings.STATIC_ROOT但是,在我的文章中,我指向了另一个目录。

  2. 如果有人可以解释每种设置的工作流程,那就太好了:文件的收集和管理方式以及遵循的最佳做法是什么。

谢谢。


问题答案:

STATIC_ROOT

./manage.py collectstatic将收集静态文件以进行部署的目录的绝对路径。 例:STATIC_ROOT="/var/www/example.com/static/"

现在,该命令./manage.py collectstatic会将所有静态文件(即,应用程序中的静态文件夹中的所有路径中的静态文件)复制到该目录/var/www/example.com/static/。现在你只需要在apache或nginx..etc上提供此目录。

STATIC_URL

在URL其中的静态文件STATIC_ROOT目录供应(由Apache或nginx..etc)。 示例:/static/http://static.example.com/

如果设置了STATIC_URL = 'http://static.example.com/’,那么你就必须服务于STATIC_ROOT文件夹(即"/var/www/example.com/static/"通过在URL Apache或nginx的), 'http://static.example.com/’(这样你可以参考静态文件'/var/www/example.com/static/jquery.js''http://static.example.com/jquery.js'

现在,在你的django模板中,可以通过以下方式引用它:

{% load static %}
<script src="{% static "jquery.js" %}"></script>

它将呈现:

<script src="http://static.example.com/jquery.js"></script>


 类似资料:
  • 本文向大家介绍Django静态资源URL STATIC_ROOT的配置方法,包括了Django静态资源URL STATIC_ROOT的配置方法的使用技巧和注意事项,需要的朋友参考一下 缘由   新手学习 Django 当配置好 HTML 页面后,就需要使用一些静态资源,如图片,JS 文件,CSS 样式等,但是 Django 里面使用这些资源并不是直接引用一下就好,还要配置路径即 STATIC_UR

  • 本文向大家介绍Python Django中的STATIC_URL 设置和使用方式,包括了Python Django中的STATIC_URL 设置和使用方式的使用技巧和注意事项,需要的朋友参考一下 使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了。特记录下来。 关键的概念:Django中,静态资源的存放通

  • 问题内容: 我找到了一个代码,它声明了如下代码 它们之间有什么区别或相同?还是与或不同? 问题答案: 完全没有区别。根据 Java语言规范的8.3.1-类-字段修饰符, 如果两个或多个(不同的)字段修饰符出现在字段声明中,则按惯例(尽管不是必需的),它们的出现顺序与上面FieldModifier生产中所示的顺序一致。 对于字段,所述生产按以下顺序列出修饰符: 对于方法:

  • 问题内容: 我将移至Django 1.3,发现媒体和静态文件的这种分离有点令人困惑。这是默认的样子: 我应该投入和?这些应该是单独的目录吗?有什么不同? 问题答案: 静态文件用于javascript /图像等,而媒体文件用于用户上传的内容。

  • 本文向大家介绍静态和动态网页之间的区别,包括了静态和动态网页之间的区别的使用技巧和注意事项,需要的朋友参考一下 在互联网冲浪的背景下,网络浏览器(客户端)和网络服务器(服务器)之间存在两方通信。现在,为了规范这种通信,有一些协议(其中最常见的是HTTP协议)允许浏览器在其中进行通信向服务器发送HTTP请求,然后服务器将HTTP响应发送到浏览器。 现在,根据发送到浏览器的响应类型,我们可以将该响应分

  • 本文向大家介绍静态和动态测试之间的区别,包括了静态和动态测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此,在为应用程序编写的代码执行的基础上,存在测试的分类,即静态测试和动态