Django模板html文件找不到WebGL Build和TemplateData文件夹

时间:2019-05-05 18:45:46

标签: python django webgl

要练习Django技能,我想尝试在我的网站上托管游戏。该游戏是用Unity制作的,并使用WebGL打包。

我使用WebGL创建的index.html作为Django模板,并在相关位置创建了URL路径和视图。 WebGL创建两个文件夹,即Build和TemplateData,这些文件夹在index.html中引用。

我尝试将这些文件夹与html模板一起放入Django文件夹结构的每个级别。

无论我把文件夹放在哪里,结果都是一样的。发送了GET命令,但显示了一些文件的“未找到:/ TemplateData / filename ....”

有人知道如何查看GET命令的位置,或者只是文件夹的位置吗?

谢谢, 苏菲

2 个答案:

答案 0 :(得分:0)

经过一番混乱之后,我发现您可以将所有内容都放入静态文件夹中,然后像在base.html中拾取CSS文件一样,在index.html中引用它

    {% load static %}
       .....some more code

    <script>
        var gameInstance = UnityLoader.instantiate("gameContainer", "{% static 
       'Build/Juno_WebGL.json' %}", {onProgress: UnityProgress});
    </script>

针对index.html中的文件的每个引用执行此操作

答案 1 :(得分:0)

我最近遇到了同样的问题并遇到了这个线程。这是我为将来可能遇到此问题的任何人提供的解决方案。

将生成的 index.html 文件放入您的模板文件夹中,使用标准的 django、url、视图、模板流创建一个指向该模板的链接,例如:

urls.py:

urlpatterns = [
    path('', views.home, name='home'),
    path('unity/', views.unity, name='unity'),
]

views.py:

def unity(request):
    return render(request, template_name='mainapp/unity.html')

获取您的 WebGL 构建文件并将它们放在您的静态文件夹中的某个位置。最后编辑您的 index.html,使其包含 {% load static %} 并查找文件中的任何 href 并将它们指向您的静态文件夹,对任何脚本执行相同操作。例如。我的 Unity 构建 WebGL 应用程序有一个 'var buildUrl = "Build";'我必须指向我的静态文件夹的行。

Example:

<!--block content etc.. -->

{% load static %}

    <html lang="en-us">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Unity WebGL Player | UnityApp</title>
        <link rel="shortcut icon" href="{% static 'unity/TemplateData/favicon.ico' %}">
        <link rel="stylesheet" href="{% static 'unity/TemplateData/style.css' %}">
      </head>

       <!-- etc.. -->

      <body>
        <script>
          var buildUrl = "../static/unity/Build";
          var loaderUrl = buildUrl + "/Unity App.loader.js";
            // etc..
        
        </script>
      </body>
    </html>