2013-06-04 60 views
0

我正在使用django圖像字段。我正在將圖像上傳到我的服務器apache服務器上的一個名爲images的文件夾中。當我嘗試通過瀏覽器的URL格式來訪問圖像:如何查看瀏覽器上傳的django imagefield圖像?

http://mydomain.com/images/myimage.png

我得到一個404錯誤,因爲Django是攔截我的要求。

如何從瀏覽器從圖像字段訪問django上傳的圖像?

謝謝!

+0

您已在設置文件中定義了「MEDIA_URL」和「MEDIA_ROOT」權限?那麼你應該做這樣的'http:// mydomain.com/media/images/myimage.png',如果這不起作用,試着打印這個'obj.image.url'來獲取上傳圖片的URL,如果圖像字段被命名爲「圖像」。 –

+0

嘗試'http:// mydomain.com/static/images/myimage.png' – karthikr

回答

1

您需要爲您的媒體設置指令,這將允許apache直接提供靜態/媒體文件,而不是將請求傳遞給django。以下是您可以使用的示例VirtualHost配置。

<VirtualHost *:80> 
    ServerAdmin [email protected]{{ maildomain }} 
    ServerName {{ fqdn }} 

    WSGIDaemonProcess {{ projectname }} python-path=/var/www/{{ projectname }}/environ/lib/python{{ pyversion }}/site-packages 
    WSGIProcessGroup {{ projectname }} 
    WSGIScriptAlias//var/www/{{ projectname }}/project/wsgi.py 

    <Directory /var/www/{{ projectname }}/static/> 
     Order deny,allow 
     Allow from all 
    </Directory> 
    <Directory /var/www/{{ projectname }}/files/> 
     Order deny,allow 
     Allow from all 
    </Directory> 
    Alias /static /var/www/{{ projectname }}/static/ 
    Alias /files /var/www/{{ projectname }}/files/ 


    ErrorLog /var/log/apache2/{{ projectname }}/logs/errors.log 
    CustomLog /var/log/apache2/{{ projectname }}/logs/access.log combined 
</VirtualHost> 
+0

我也將MEDIA_ROOT設置爲靜態目錄,並且將imagefield的upload_to參數設置爲靜態目錄中的文件夾。這現在起作用。 – Atma