2016-11-15 17 views
1

有沒有辦法列出來自視圖的所有靜態資產。一種方法是使用絕對路徑,但有Django的方式嗎?我嘗試使用的另一種方法是request.build_absolute_uri(),但os.listdir()無法打開它,因爲它是一個URL。列出Django中的所有靜態資產

有什麼建議嗎?

更新

我通過S3爲我的文件。

回答

1

你可以利用STATICFILES_DIRS從設置:

from django.conf import settings 

for folder in settings.STATICFILES_DIRS: 
    # do whatever you want here 

但是如果你使用runserver這隻會工作。如果您使用collectstatic和Web服務器提供靜態文件,你應該去:

from django.conf import settings 

for root, dirs, files in os.walk(settings.STATIC_ROOT): 
    # do whatever you want here 
+0

將這項工作,如果我掛我的所有靜態資產S3? – Akshay

+0

對不起,我沒有使用S3,所以我不能告訴你任何實質性的東西。 –

+0

更新:也許,這個問題可以幫助(注意:它使用額外的軟件包,如果這對你很重要):http://stackoverflow.com/questions/26933834/django-retrieval-of-list-of-files-在-S3桶 –