2016-11-06 63 views
1

不加載我已經部署的Apache Web服務器上的Django項目。我正在服務我的媒體文件夾/var/www/media/。當我在我的Web應用程序中時,我的媒體文件加載正常。媒體文件的電子郵件在Django

我有一個向不同的人發送電子郵件的功能。在那封電子郵件中應該加載這些媒體文件,但是它們在控制檯中顯示404錯誤。

這是我在apache2.conf添加文件:

WSGIScriptAlias//home/search/egeirn/project/egeirn/wsgi.py 
WSGIPythonPath /home/search/egeirn/project:/home/search/virtualenvs/egerin/lib/python2.7/site-packages 

Alias /media/ /var/www/media/ 
Alias /static/ /var/www/static/ 

<Directory /var/www/static> 
Require all granted 
</Directory> 

<Directory /var/www/media> 
Require all granted 
</Directory> 

<Directory /home/search/egeirn/project/egeirn> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

這是我base.py文件:

... 
STATIC_URL = '/static/' 
STATIC_ROOT = '/var/www/static/' 

MEDIA_URL = '/media/' 
MEDIA_ROOT = '/var/www/media/' 
... 

這是我production.py這是在manage.pywsgi.py加載文件:

from .base import * 

DEBUG = False 

ALLOWED_HOSTS = ['iro.egerin.com'] 

MEDIA_URL = 'http://iro.egerin.com/media/' 

請告訴我該如何將我的媒體文件加載到應用程序中,比如在電子郵件中?

只給一個想法,這是在控制檯中的錯誤:

enter image description here

+0

沒有設置媒體的URL項目urls.py – 2016-11-07 08:53:39

回答

0

你已經錯過了在您所添加的媒體文件的模板,添加您的服務器名稱。 您圖像元素應該是這樣的:

<img src="{{MEDIA_URL}}{{path_of_image}}" /> 

你已經錯過了在模板中MEDIA_URL。

0

確保您已在項目中添加了媒體的URL urls.py

urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
          {'document_root': settings.MEDIA_ROOT, 'show_indexes': False}),) 

設置項目中settings.py的MEDIA_ROOT,然後直接就可以使用.url訪問模板中的圖像({{instace.prodimage.url }}

+0

能否請你告訴我什麼是在urls.py添加媒體URL的目的是什麼? – Sibtain

+0

從數據庫中讀取媒體文件的路徑,(一旦你上傳的媒體文件的應用程序,文件去哪個你提到的模型創建的媒體文件夾的路徑存儲到模型字段) – 2016-11-08 07:25:11