gpt4 book ai didi

python - Django 上静态 STATIC_URL 和 STATIC_ROOT 之间的区别

转载 作者:行者123 更新时间:2023-11-28 19:32:31 31 4
gpt4 key购买 nike

我对 static root 感到困惑,想澄清一些事情。

要在 Django 中提供静态文件,settings.pyurls.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

The absolute path to the directory where ./manage.py collectstatic will collect static files for deployment. Example: STATIC_ROOT="/var/www/example.com/static/"

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

STATIC_URL

The URL of which the static files in STATIC_ROOT directory are served(by Apache or nginx..etc). Example: /static/ or http://static.example.com/

如果您设置 STATIC_URL = 'http://static.example.com/',那么您必须提供 STATIC_ROOT 文件夹(即 "/var/www/example.com/static/") 通过 apache 或 nginx 在 url '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>

关于python - Django 上静态 STATIC_URL 和 STATIC_ROOT 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8687927/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com