Ho installato con successo il mio progetto Django in openshift. Ma devo essere in grado di servire i file che vengono caricati dagli utenti. Io userò MEDIA_ROOT e MEDIA_URL per quello. Ho seguito il tutorial this qui, ma non è successo niente. Ho dovuto cambiare MEDIA_ROOT perché quello suggerito non è corretto, penso. Quindi il mio root_supporto assomigliaDjango che serve file multimediali (file caricati dall'utente) in openshift
MEDIA_ROOT = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', ''),'media')
MEDIA_URL = '/media/'
ho aggiunto il .htaccess nella cartella/WSGI con come si dice in questo articolo
RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/$1 [L]
e ha creato lo script di build per fare link simbolico dei media in statica come dice l'articolo.
#!/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
Nel mio urls.py ho aggiunto il
urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_URL)
ma ancora non riesco a servire. Ho anche provato a non includere il metodo statico django in urls.py ma lo stesso risultato.
Nella esercitazione another .htacces viene inserito nella cartella statica. Sto facendo qualcosa di sbagliato?
in grado di risolvere il mio problema ancora ... Anche se è chiaramente descritto che funziona ... – Apostolos
Qual è l'obiettivo? Se si desidera ricevere i file multimediali da Apache, non utilizzare urlpatterns (principalmente nella produzione). Nell'altro caso non si dovrebbero usare riscritture e symlink (principalmente per lo sviluppo). – tomako
Piccola nota. Sul tuo URL hai urlpatterns + = static (settings.MEDIA_ROOT, document_root = settings.MEDIA_URL) ma dovrebbe essere urlpatterns + = statici (settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) Gli argomenti sono in ordine inverso –