要练习Django技能,我想尝试在我的网站上托管游戏。该游戏是用Unity制作的,并使用WebGL打包。
我使用WebGL创建的index.html作为Django模板,并在相关位置创建了URL路径和视图。 WebGL创建两个文件夹,即Build和TemplateData,这些文件夹在index.html中引用。
我尝试将这些文件夹与html模板一起放入Django文件夹结构的每个级别。
无论我把文件夹放在哪里,结果都是一样的。发送了GET命令,但显示了一些文件的“未找到:/ TemplateData / filename ....”
有人知道如何查看GET命令的位置,或者只是文件夹的位置吗?
谢谢, 苏菲
答案 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>