2016-01-26 12 views
5

C'è una domanda precedente che ho potuto trovare:django amministrazione statica 404 per icon_clock.gif e icon_calender.gif

Using Django and s3boto, some admin images (icon_clock.gif & icon_calendar.gif) don't display

ma è molto datato (2013). Sto eseguendo django 1.9.1, apache, wsgi su Ubuntu 14.04.3 LTS.

In primo luogo il problema era che jquery file sono mancanti, ma in esecuzione collectstatic (manage.py) dall'interno del virtualenv fisso quel problema. Tuttavia, i due file multimediali di amministrazione sono ancora mancanti. I 404 chiamate URL sono:

http://example.com/missing-admin-media-prefix/img/icon_calendar.gif 
http://example.com/missing-admin-media-prefix/img/icon_clock.gif 

Il prefisso URL strana porta a trovare diversi molto vecchi domande relative a questo problema, ma sembra siano stati ammortizzati per Django 1.9.1.

mio settings.py assomiglia a questo:

STATIC_URL = '/static/' 
#ADMIN_MEDIA_PREFIX = '/static/admin/' 
#MEDIA_URL = "/media/" 
#MEDIA_ROOT = "/home/user/app_root/media/" 
STATIC_ROOT = "/home/user/app_root/static/" 

Le linee outcommented erano suggerimenti che ho trovato nelle questioni obsolete relative allo stesso problema (nessuno ha funzionato). Tutti gli altri file statici funzionano bene, inclusa la maggior parte degli amministratori.

Ho esaurito le idee.

risposta

3

Questo errore in django 1.9.1 significa che la vecchia versione del file javascript 'django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js' viene utilizzata poiché non c'è 'missing-admin-media- prefisso 'testo nella nuova versione.

Forse dovresti ricaricare la pagina con shift-F5 o cancellare la cache del browser.

Nel caso non sia d'aiuto: controllare nella console del browser perché viene utilizzata la vecchia versione del file.

aggiornamento della discussione nei commenti:

Il problema era dovuto alla versione precedente di Django installati a livello globale tramite pip. Per risolvere il problema, procedere come segue:
1) La vecchia versione di django installato a livello globale è stata rimossa con pip uninstall django e pip3 uninstall django (all'esterno di virtualenv);
2) I file statici sono stati raccolti con python manage.py collectstatic -c dove -c è un'opzione per cancellare i file esistenti (con virtualenv attivato);
3) Il server Web è stato riavviato.

+0

Ho provato quello naturalmente. Non so perché userebbe una vecchia versione. Funziona bene quando si utilizza il server di sviluppo ('manage.py runserver'). – Deleet

+0

Guarda la cartella dei file statici del tuo progetto. Quale versione di script c'è? –

+0

Questo progetto è stato creato in 1.9.1, non importato da una versione precedente. Se il file è sbagliato lì, allora è sbagliato in django 1.9.1. L'installazione di django è una nuova installazione (tramite 'apt-get') in un ambiente virtuale di qualche giorno fa. – Deleet

Problemi correlati