gpt4 book ai didi

django - 如何设置 STATIC_ROOT 和 MEDIA_ROOT 以便使用的路径不是硬编码的?

转载 作者:行者123 更新时间:2023-12-02 07:19:48 24 4
gpt4 key购买 nike

在我的settings.py 文件中,STATIC_ROOTMEDIA_ROOT 目前都指向硬编码位置。例如STATIC_ROOT路径是:

/home/ian/projectname/mysite/appname/static

我知道这会在我部署项目时引起问题。

环顾四周,我发现我需要使用os.path,但无数的例子让我感到困惑。

我尝试查看设置此文件的不同排列(或获取用于设置 BASE_DIR 的示例值),但是屏幕截图显示我丢失了一些内容,因为它提示文件 值。

如果需要,我使用 Django 1.6

提前致谢。

enter image description here

最佳答案

首先,由于在交互式 shell 中附加 __file__,您收到此错误:

NameError: name '__file__' is not defined

shell 不会检测 __file__ 中的当前文件路径,因为它与您在其中添加此行的 filepath 相关。例如,要工作,您需要将其包含在 file.py 中:

os.path.join(os.path.dirname(__file__))

然后,从命令行运行:

python file.py

这是因为 __file__file.pyfilepath 相关。

对于 settings.py,使用它来获取 Django 项目的根目录:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))

然后您可以使用os.path.join()来加入其他相对路径,例如:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
TEMPLATE_DIRS = os.path.join(BASE_DIR, 'templates')

有关如何布局 Django 项目目录的更多信息,请阅读:Common structures

关于django - 如何设置 STATIC_ROOT 和 MEDIA_ROOT 以便使用的路径不是硬编码的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854786/

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