0
我有一個Django網站正在生產。靜態文件服務正常,但媒體文件無法檢索。網站不提供媒體文件,但正確提供靜態文件
我setting.py:
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
MEDIA_URL = "media/"
我試圖與這兩個"/media/"
和"media/"
,第一批URL使用.url
屬性時,在HTML錯誤地顯示。
我的Apache配置:
Alias /static/ /var/www/MySite/static/
<Directory /var/www/MySite/static>
Require all granted
</Directory>
Alias /media/ /var/www/MySite/media/
<Directory /var/www/MySite/media>
Require all granted
</Directory>
在視圖我檢索如下:
{% for photo in photos %}
<div class="col-md-3 photo-wrapper">
<img src="{{ photo.image.url }}"/>
</div>
{% endfor %}
和URL被作爲http://mysite.co.za/media/profile_photos/photo.png
生成的文件確實會上傳,我可以看到他們VPS服務器,但當檢索失敗時,拋出一個404找不到。
它的工作在調試模式,因爲我已經在我的urls.py
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
以下,但是當調試模式是關閉的,這並不工作。我將如何去服務這些媒體文件?
,我的天哪,經過這麼多的麻煩,你是對的,我並沒有考慮過,你做一個collectstatic服務於靜態文件的事實,所以我的媒體文件是在我的靜態文件旁邊,而不是在我的根目錄中,Apache正在尋找它們。謝謝! – Riaan