Django erkennt den Pfad MEDIA_URL nicht?

8

Ich versuche also, TinyMCE mit einer einfachen View-Funktion zu starten, aber der Pfad zur tiny_mce.js-Datei wird vermasselt. Die Datei befindet sich unter /Users/home/Django/tinyMCE/media/js/tiny_mce/tiny_mce.js. Ich glaube, dass /media/js/tiny_mce/tiny_mce.js korrekt ist, da der Entwicklungsserver keinen Zugriff auf Dateien über dem Stamm des Django-Projektordners hat. In der gerenderten Seite wird im Debugger angegeben, dass die JavaScript-Datei nicht gefunden wurde. Dies liegt daran, dass versucht wurde, durch /js/tiny_mce/tiny_mce.js zu suchen, ohne den / media / Teil des Pfadnamens zu adressieren.

Wie auch immer, hier ist das Skript-Snippet für das Javascript in einer Vorlage namens 'simple.html'. <script type="text/javascript" src="{{ MEDIA_URL }}/js/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ mode : "textareas", theme : "simple" }); </script>

Und das ist, was die wesentlichen Teile meiner Einstellungen sind.

%Vor%     
rk919 11.01.2010, 04:18
quelle

8 Antworten

13

Sie können es entweder wie von anderen vorgeschlagen manuell an die Vorlage übergeben oder sicherstellen, dass Sie ein RequestContext anstelle von einfachem Kontext. RequestContext füllt den Kontext automatisch mit bestimmten Variablen, einschließlich MEDIA_URL und anderen medienbezogenen Variablen.

Beispiel aus der Dokumentation:

%Vor%     
Ben Regenspan 11.01.2010, 04:49
quelle
22

Es sieht so aus, als ob Sie den Debug-Server verwenden (Ihre URL ist Ссылка .). Hast du den statischen Serve in deiner urls.py installiert?

%Vor%

Die 'show_indexes': True Optionen ermöglichen das Durchsuchen Ihrer Medien. Geh zu deinem Media-Root Ссылка und sieh, dort ist etwas

    
luc 11.01.2010 05:35
quelle
7

Es sieht so aus als ob ars Ihre echte Frage beantwortet hat ... Aber Sie werden auf ein anderes Problem stoßen: MEDIA_URL muss anders sein von ADMIN_MEDIA_PREFIX . Wenn dies nicht der Fall ist, hat ADMIN_MEDIA_PREFIX Vorrang. Normalerweise behebe ich dies, indem ich ADMIN_MEDIA_PREFIX in /admin-media/ ändere.

    
David Wolever 11.01.2010 05:11
quelle
6

Haben Sie den Medienkontextprozessor in Ihren Einstellungen?

%Vor%

Sie können auch versuchen, Folgendes in Ihre Einstellungen zu schreiben, um zu sehen, ob die Debug-Meldungen etwas offenbaren:

%Vor%     
ars 11.01.2010 04:46
quelle
4

Bitte lesen Sie den offiziellen Django DOC sorgfältig durch und Sie werden die passende Antwort finden.

Der beste und einfachste Weg, dies zu lösen, ist wie folgt.

%Vor%

Die zugehörige URL lautet: Ссылка

    
JChen___ 30.04.2013 14:58
quelle
3

Vielen Dank für Ihre Hilfe. Ich konnte es als

lösen

settings.py - & gt;

%Vor%

urls.py - & gt;

%Vor%

index.html - & gt;

%Vor%

Nochmals, vielen Dank, ich wurde verrückt und versuchte herauszufinden, wie ich das alles machen sollte. Diese Lösung funktionierte für mich auf einer Django Version 1.2.5 Entwicklungsserver unter Ubuntu 10.04.

    
Jesus Noland 04.05.2011 00:36
quelle
0

Ich hatte ein ähnliches Problem, Ich habe eine One-Page-App und anscheinend hatte ich einen Anfängerfehler, der Django meinen Medienpfad vermisste, den ich hatte:

%Vor%

statt dessen:

%Vor%

Das fehlende $ hat dazu geführt, dass mein URL-Muster meine Medien-URL verfehlt hat

    
elad silver 20.05.2015 13:14
quelle
0

Ich hatte auch das gleiche Problem, so habe ich es geschafft.

Wenn Sie ein FileField in Ihrer Modellklasse anstelle von MEDIA_URL verwenden, verwenden Sie .url member, um auf die URL Ihrer Datei zuzugreifen. Für zB: so etwas

%Vor%

here Dateiname ist das FileField in der Modellklasse.

    
Nikhil Wagh 30.08.2017 20:10
quelle

Tags und Links