0

我希望我的 STATIC_ROOT 路径位于F:/7.Django/BLOG_PROJECT/src_blog/' + '/vol/web/staticfiles但 django 将其设置为F:/vol/web/staticfiles

我这样设置我的 STATIC_ROOT

STATIC_ROOT = os.path.join(BASE_DIR,'/vol/web/staticfiles')

print('this is base_dir')
print(BASE_DIR)
print("this is static_root")
print(STATIC_ROOT) 

当我运行python manage.py runserver它打印出这个:

this is base_dir
F:\7.Django\BLOG_PROJECT\src_blog
this is static_root
F:/vol/web/staticfiles
this is base_dir
F:\7.Django\BLOG_PROJECT\src_blog
this is static_root
F:/vol/web/staticfiles

当我跑步时python manage.py collectstatic。当然!它设置了我的 STATIC_ROOT AT F:/vol/web/staticfiles。我注意到它打印出单独的文件夹符号不同的'/'和#backslashsymbol。顺便说一句,我使用 Windows 操作系统。

4

2 回答 2

0

解决了!只需将其更改为反冲符号而不是“/”。
看起来只是一个窗口 vs linux 讨厌的东西。

STATIC_ROOT = os.path.join(BASE_DIR,'vol\web\staticfiles')

编辑:当您在 Linux 基础容器中使用代码时,您知道我上面的答案会产生问题 @AbdulAzizBarkat 给我一个更好的解决方案:
如果您想os.path.join正确处理它们,您不应该在路径中提供任何斜杠,因此您应该写作

os.path.join(BASE_DIR, 'vol', 'web', 'staticfiles')
于 2021-10-06T10:27:31.757 回答
0

它可能会解决您的问题。

STATIC_ROOT = BASE_DIR / 'path'
于 2021-10-06T13:49:23.667 回答