我正在使用django圖像字段。我正在將圖像上傳到我的服務器apache服務器上的一個名爲images的文件夾中。當我嘗試通過瀏覽器的URL格式來訪問圖像:如何查看瀏覽器上傳的django imagefield圖像?
http://mydomain.com/images/myimage.png
我得到一個404錯誤,因爲Django是攔截我的要求。
如何從瀏覽器從圖像字段訪問django上傳的圖像?
謝謝!
我正在使用django圖像字段。我正在將圖像上傳到我的服務器apache服務器上的一個名爲images的文件夾中。當我嘗試通過瀏覽器的URL格式來訪問圖像:如何查看瀏覽器上傳的django imagefield圖像?
http://mydomain.com/images/myimage.png
我得到一個404錯誤,因爲Django是攔截我的要求。
如何從瀏覽器從圖像字段訪問django上傳的圖像?
謝謝!
您需要爲您的媒體設置指令,這將允許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>
我也將MEDIA_ROOT設置爲靜態目錄,並且將imagefield的upload_to參數設置爲靜態目錄中的文件夾。這現在起作用。 – Atma
您已在設置文件中定義了「MEDIA_URL」和「MEDIA_ROOT」權限?那麼你應該做這樣的'http:// mydomain.com/media/images/myimage.png',如果這不起作用,試着打印這個'obj.image.url'來獲取上傳圖片的URL,如果圖像字段被命名爲「圖像」。 –
嘗試'http:// mydomain.com/static/images/myimage.png' – karthikr