2013-07-14 55 views
1

我試圖在我的views.py使用一些圖片,我這樣做,django static_root瞭解 - IOError - ??

from django.conf import settings 
image = settings.STATIC_ROOT + "images/test.png" 
fp = open(image, 'rb') 

但他說:

IOError at/
(2, 'No such file or directory') 
在我的settings.py

,我有:

STATIC_ROOT = os.path.join(PROJECT_PATH, "static") 
STATIC_URL = '/static/' 

我在這裏想念什麼? STATICFILES_DIRS是空的,但在模板中,我一直工作到現在,但現在我想要在我的views.py中獲取圖像。

+0

'STATIC_ROOT'應該以'/'結尾。 'os.path.join(PROJECT_PATH,「static /」)' –

+0

@AamirAdnan,這是否有區別? – doniyor

+1

是的,我認爲是。假設settings.STATIC_ROOT ='/ abc/static',那麼現在你的路徑是'settings.STATIC_ROOT +「images/test.png」'='/ abc/staticimages/test.png「,但它應該是'/ abc/static/images/test.png' –

回答

1

你可以嘗試:

from django.contrib.staticfiles.views import serve 
serve(request, 'images/test.png') 

如果我沒有記錯正確壽這一點,如果調試是真實的纔有效。

但它聽起來像它沒有找到路徑,找到TE項目路徑...

Print(normpath(join(dirname(__file__), '..')))

這會幫助你找出並解決問題。

+0

你能否解釋如何使用這個命令以及在哪裏使用它。 – doniyor

+1

只需在您的視圖中添加print(normpath(join(dirname(__ file__),'..'))),如果您喜歡,並在您的終端輸出中打印出來。打印(「你好」)等只是輸出。 –

+0

normpath,join,dirname都顯示錯誤爲未定義變量 – doniyor