为 Django 服务器托管本地 Dojo

Hosting local Dojo for Django server

以前可能有人问过这个问题,但我找不到合适的答案。我正在使用 Django 并希望托管本地 DOJO 而不是使用 CDN。

我在 /share/dojo-release-1.11.2 有一份道场副本。该文件夹有子文件夹 - dijit dojo dojox themes

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

感谢您的帮助。

谢谢!

是的,在加载 dojo.js 脚本之前,您必须使用 dojoConfig

通过 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 的方式,因此您必须将其作为您的配置。 我的应用程序 我不熟悉 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

就这些了。