2012-07-11 98 views
4

要查看靜態文件(圖像和PDF),我定義STATIC_DIRS包含目錄名的值,其中我上傳這些文件:靜態文件 - 找不到網頁

STATICFILES_DIRS = (
    '/home/alessandro/Scrivania/progetto/media/photos/custodia/', 
    '/home/alessandro/Scrivania/progetto/media/definitiva/', 
    '/home/alessandro/Scrivania/progetto/media/proforma/', 
    '/home/alessandro/Scrivania/progetto/media/fpdf/'; 
) 

在STATIC_URL:

STATIC_URL = '/static/'

在已安裝的應用程序:

INSTALLED_APPS = (
    .... 

    'django.contrib.staticfiles', 

) 

的權限是0777

現在,當我想看到圖像或PDF文件時,我收到此錯誤消息。 找不到網頁

我使用這個網址:
HTTP://127.0.1:8000 /家庭/亞歷山德羅/ Scrivania/PROGETTO /媒體/照片/ custodia/powered_by.png

什麼想法?爲什麼會出現這個問題?

+0

看看http://stackoverflow.com/questions/10460028/confusion-in-django-admin-static-and-media-files/10460116#10460116 – 2012-07-11 17:17:23

+0

'app-folder/static /' - good 。 '項目文件夾/靜態/' - 壞。對於未來的觀衆,這是我的錯誤,導致404錯誤。 '/ static /'應該是[models.py的兄弟](http://stackoverflow.com/a/15435556/673991)。 – 2015-12-21 19:42:20

回答

5

默認情況下,靜態文件和媒體文件不會與Django的內置開發服務器一起提供。如果您希望它直接提供這些文件,請在您的urlconf中添加staticfiles_urlpatternsMEDIA_URL模式。

from django.conf import settings 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
from django.conf.urls.static import static 

# ... the rest of your URLconf goes here ... 

urlpatterns += staticfiles_urlpatterns() 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

如果DEBUGTrue這隻會工作。請參閱corresponding docs

注意:你不應該在生產中這樣做!在生產模式下始終爲靜態文件使用單獨的Web服務器。

+0

謝謝,我有編輯urls.py,所以我必須插入:從django.conf導入設置 從django.contrib.staticfiles.urls導入staticfiles_urlpatterns 從django.conf.urls.static進口靜態 #...的其餘的URLconf去這裏... urlpatterns + = staticfiles_urlpatterns() urlpatterns + = static(settings.STATIC_URL,document_root = settings.STATIC_ROOT),重新加載頁面和「找不到頁面」。 - >'alessandro/Scrivania/progetto/media/photos/custodia/shop-ad.jpg'無法找到錯誤在哪裏? – 2012-07-12 16:28:03

+0

@AlexanderT你爲什麼用STATIC_URL和STATIC_ROOT替換MEDIA_URL和MEDIA_ROOT? – 2012-07-12 21:56:53

+0

因爲圖像和pdf文件是一個靜態文件?或不? – 2012-07-12 22:12:19