我试图让Protovis在我的Django网站上工作。这是我的示例代码:

<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>

当我直接在Firefox中打开此文件时,将显示“ {{Object.name}}”字符串“ Hello World”图像显示。

但是,从我的Django服务器访问.html文件模板时,我只看到{{object.name}}(对象的名称已打印出)。

到目前为止,我还没有发现类似的问题,可以满足Django中的Protovis使用。如果有人让它工作或知道我做错了什么,请告诉我。

谢谢,

有帮助吗?

解决方案

您已经要求使用JavaScript文件 src="protovis-r3.2.js"

当您直接查看HTML文件时,您的浏览器将与.html文件相同的目录中查看一个称为protovis-r3.2.js的文件。

但是,当您要求Django提供同一页面时,它不会遵循相同的协议。看 本文 了解更多信息。

使它起作用:

  • 将protovis-r.32.js文件移至新目录: /path/to/my/django_site/static (where/path/to/my/django_site是Django应用程序的绝对路径)

  • 使用该行配置URLS.PY:

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

  • 将HTML代码中脚本标签的SRC属性更改为:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top