Django:使用static()找不到文件

时间:2014-03-27 16:11:20

标签: python django

我有一个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

工作正常。为什么第一个不起作用?感谢。

1 个答案:

答案 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

价: https://thezebra.wordpress.com/2011/10/13/usage-notes-on-static_root-static_url-media_root-media_url-in-django-v1-3/