Domanda

Sto cercando di ottenere Protovis di lavoro nel mio sito Django. Qui è il mio codice di esempio:

<html>
    <head>    
    <script type="text/javascript" src="protovis-r3.2.js"></script>
    </head>
    <body>
    <script type="text/javascript+protovis">
        new pv.Panel().width(150).height(150).anchor("center")
            .add(pv.Label)
            .text("Hello, world!")
        .root.render();
    </script>
    {{ object.name }}
    </body>
</html>

Quando ho aperto il file direttamente in Firefox, l'immagine a Protovis 'Ciao mondo' viene visualizzato toguether con la stringa "{{}} object.name".

Ma quando si accede al modello di file .html dal mio server Django, vedo solo il {{}} object.name (il nome dell'oggetto stampato).

non ho trovato problemi simili finora, di catering per l'uso Protovis in Django. Se qualcuno ha ottenuto esso di lavoro o di sapere che cosa sto facendo male, per favore fatemelo sapere.

Grazie,

È stato utile?

Soluzione

che hai chiesto il file JavaScript utilizzando src="protovis-r3.2.js"

Quando si guarda il file html direttamente, il browser cercherà nella stessa directory del file HTML per un file chiamato Protovis-r3.2.js.

Tuttavia, quando si chiede Django per servire questa stessa pagina, che non segue lo stesso protocollo. Vedere questo articolo per ulteriori informazioni.

Per farlo funzionare:

  • Spostare il file Protovis-r.32.js in una nuova directory: /path/to/my/django_site/static (dove / path / to / mio / django_site è il percorso assoluto al app Django)

  • Configura urls.py con la linea:

(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/my/django_site/static'}),

  • Cambia l'attributo src del tag script nel codice html:

src="/static/protovis-r3.2.js"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top