Tôi đã triển khai thành công dự án Django của tôi trong openhift. Nhưng tôi cần để có thể phục vụ các tập tin được tải lên bởi người dùng. Tôi sử dụng MEDIA_ROOT và MEDIA_URL cho điều đó. Tôi đã theo dõi this hướng dẫn tại đây, nhưng không có gì xảy ra. Tôi đã phải thay đổi MEDIA_ROOT bởi vì một trong những đề nghị không đúng tôi nghĩ. Vì vậy, MEDIA_ROOT của tôi trông giống nhưDjango phân phát các tập tin media (tập tin người dùng tải lên) trong openshift
MEDIA_ROOT = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', ''),'media')
MEDIA_URL = '/media/'
Tôi được thêm vào .htaccess trong thư mục/wsgi với như nó nói trong bài viết
RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/$1 [L]
và tạo xây dựng kịch bản để làm cho liên kết tượng trưng của giới truyền thông trong tĩnh như bài báo nói.
#!/bin/bash
if [ ! -d $OPENSHIFT_DATA_DIR/media ]; then
mkdir $OPENSHIFT_DATA_DIR/media
fi
ln -sf $OPENSHIFT_DATA_DIR/media $OPENSHIFT_REPO_DIR/wsgi/static/media
Trong urls.py của tôi, tôi đã thêm
urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_URL)
nhưng tôi vẫn không thể phục vụ họ. Tôi cũng đã cố gắng không bao gồm các phương pháp django tĩnh trong urls.py nhưng kết quả tương tự.
Trong hướng dẫn another .htacces được đặt bên trong thư mục tĩnh. Tôi có làm điều gì sai?
chưa thể giải quyết được vấn đề của tôi ... Mặc dù được mô tả rõ ràng rằng nó hoạt động ... – Apostolos
Mục tiêu là gì? Nếu bạn muốn được phục vụ các tập tin media của Apache bạn không nên sử dụng urlpatterns (chủ yếu là trong sản xuất). Trong trường hợp khác, bạn không nên sử dụng viết lại và liên kết tượng trưng (chủ yếu để phát triển). – tomako
Ghi chú nhỏ. Trên URL của bạn, bạn có urlpatterns + = static (settings.MEDIA_ROOT, document_root = settings.MEDIA_URL) nhưng nó phải là urlpatterns + = tĩnh (settings.MEDIA_URL, DOCUMENT_ROOT = settings.MEDIA_ROOT) Các đối số theo thứ tự ngược –