为Django服务器托管本地Dojo

时间:2016-11-30 15:03:30

标签: javascript django dojo

之前可能会问这个问题,但我无法找到一个好的答案。我正在使用Django并希望托管本地DOJO而不是使用CDN。

我在/share/dojo-release-1.11.2中有一个dojo的副本。该文件夹包含子文件夹 - dijit dojo dojox themes

我应该使用dojoConfig = {..}吗?如果是这样,它的语法是什么?

感谢您的帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,在加载dojoConfig脚本

之前,您必须使用dojo.js

在html文件中的示例(添加claro css主题并将class="claro"追加到body

<script>
    var dojoConfig = {
        //parseOnLoad: true, //if you want to parse without using parser.parse() set the value to true otherwise to false
        async: true
    };
</script>
<link rel="stylesheet" href="{% static %}share/dojo-release-1.11.2/dijit/themes/claro/claro.css" />
<script type="text/javascript" src="{% static %}share/dojo-release-1.11.2/dojo/dojo.js"></script>
<script>
    require([
        "dojo/parser",
        "dijit/form/Button"
    ], function(parser,Button) {
        parser.parse();
    });
</script>
</head>
<body class="claro">
    <div data-dojo-type="dijit/form/Button">
        test Button
    </div>
</body>

PS:注意{{ STATIC_URL }}取决于你在django服务器中加载dojo的方式,所以你必须把它作为你的配置。 MYAPP 我不熟悉django,但我会告诉你这个例子:

你有一个名为myapp的应用: 在myapp内,您必须在myapp/settings.py内添加一些说明才能访问静态文件

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

然后在你的html模板中加载文件如下:

...
<script type="text/javascript" href="{% static 'share/dojo-release-1.11.2/dojo/dojo.js' %}">
...

因此,您应用中的结构应如下所示:

mysite
  ├── templates
  ├── static
  |     └─── share
  |            └─── dojo-release-1.11.2
  |                   └─── ... 
  ├──...
  .
  .
  .
  └──setting.py

就是这样。