0

我正在使用 Django 1.5 和 Python 2.7。我的项目目录是通常的:

有一个名为 projectFolder 的项目文件夹。在 projectFolder 中,还有另外两个文件夹:projFolder 和 projApp。

projFolder 里面是我的 settings.py、init .py 和 urls.py。

projApp 内部是我的 models.py、views.py 和我的静态文件夹,其中包含我的模板。现在,在我的 settings.py 文件中,我有以下内容:

SITE_MEDIA_ROOT = os.path.join(
    os.path.dirname(__file__), 'projApp/', 'static/', 'site_media' 
)

上面的代码行工作得很好,这就是我在我所遵循的教程中读到的。然而,难道不应该

SITE_MEDIA_ROOT = os.path.join(
    os.path.dirname(__file__), '../', 'projApp/', 'static/', 'site_media' 
)

? 据我了解,

os.path.dirname(__file__)

是当前文件所在目录的路径,对吗?所以这将是 projFolder,因为 settings.py 在 projFolder 中。那么我不应该先退出当前目录,然后进入 projApp 文件夹才能进入静态文件夹吗?不是线

os.path.dirname(__file__), 'projApp/', 'static/', 'site_media' 

意味着Django应该搜索

projectFolder/projFolder/projApp/static

? 如果是,那么如何在不首先退出当前 settings.py 目录的情况下找到静态?

4

1 回答 1

0

是的,它应该:) 至少我的项目就是这样,除了..这个:

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

我认为它现在默认出现在 settings.py 中。

您是否 10000% 确定 settings.py 是您所说的位置?

也许尝试在 settings.py 中添加一些打印语句并运行测试服务器,以查看这些路径的真实值

 print os.path.dirname(__file__)
于 2014-02-18T01:29:39.067 回答