我有一个Django项目myproj
,有一个应用myapp
。在myproj/myproj
中,我有一个文件settings.py
,其中包含第STATIC_URL = '/static/'
行。在myproj/myapp/static/myapp
中,我有一个名为myfile.txt
的文件。在myproj/myapp
中,我有一个文件myscript.py
,其中包含以下行:
from django.templatetags.static import static
fname = static('myapp/myfile.txt')
with open(fname, 'r') as f:
# Do something
在这里,我在浏览器中收到错误:No such file or directory: '/static/myapp/myfile.txt'
但是,如果我将代码更改为以下内容:
fname = 'myapp/static/myapp/myfile.txt'
with open(fname, 'r') as f:
# Do something
工作正常。为什么第一个不起作用?感谢。
答案 0 :(得分:0)
在open
函数中,/static/myapp/myfile.txt
表示环境中的绝对路径。 myapp/static/myapp/myfile.txt
是一个相对路径,因此它可以工作。
也许你想要这个?
在settings.py
:
# Replace 'your_path` with your actual path
`STATIC_ROOT` = '/your_path/myproj/myapp/static/'
在myscript.py
:
from django.conf import settings
fname = settings.STATIC_ROOT + 'myapp/myfile.txt'
with open(fname, 'r') as f:
# Do something