首页 > 解决方案 > 我不知道如何将 .html 文件之一从测验应用程序连接到 django 应用程序。(找不到页面 (404))

问题描述

我的(Django)basic_app 中有一个 quiz_app(位于 QuizApp 文件夹中)。到目前为止一切正常,游戏结束并且 quiz_end.html(以前的 end.html)页面没有显示。

此链接指向 quiz_game.js,它(链接)位于 quiz_game.html 文件中 - (在本例中,quiz_js 是位于 django 的静态文件夹中的文件夹)

<script src="{% static "quiz_js/quiz_game.js" %}">

这是 end.html 文件的某种链接(请注意,end.html 很快将重命名为 quiz_end.html 文件),该链接位于 quiz_game.js 文件中 - (它是if 语句 - 如果没有问题,则游戏结束)

if (availableQuestions.length === 0 || questionCounter >= MAX_QUESTIONS) {
    localStorage.setItem("mostRecentScore", score);
    //go to the end page
    return window.location.assign("/end.html");
};

(您可以在此处查看此文件的完整代码 - https://github.com/jamesqquick/Build-A-Quiz-App-With-HTML-CSS-and-JavaScript/blob/master/Quiz%20App%20Master/ game.js - 它只是称为 game.js 而不是 quiz_game.js + 您可以在此处查看测验应用程序中的所有文件 - https://github.com/jamesqquick/Build-A-Quiz-App-With -HTML-CSS-and-JavaScript/tree/master/Quiz%20App%20Master - 唯一的区别是,我必须将 .css 和 .js 文件放到 Django 的静态文件夹中)

我已将 end.html 文件重命名为 quiz_end.html 并且因为我使用的是 Django,所以我试图将 Django 的模板标签合并到 quiz_game.js 文件中,就像这样 - (我不确定,如果我做得对,但它是一个标准的 url 标记,在添加到 .html 文件时有效,但我不确定是否是将其添加到 .js 文件的正确方法)

getNewQuestion = () => {

  if (availableQuestions.length === 0 || questionCounter >= MAX_QUESTIONS) {
      localStorage.setItem("mostRecentScore", score);
      //go to the end page
      return window.location.assign("{% url 'quiz_end' %}");
  };

问题是,这是我第一次尝试在使用 Django 时将浏览器从 .js 文件重定向到 .html 文件,但我真的不知道该怎么做。

quiz_end.html 文件的视图和 url 模式应该没问题。他们来了 -

def quiz_end(request):
    return render(request,'basic_app/QuizApp/quiz_end.html') 

url(r'^quiz_end/$', views.quiz_end, name='quiz_end'),

我也不知道,为什么游戏结束后浏览器仍将我重定向到 /end.html 而不是将我重定向到 /quiz_end.html。

有人可以帮我吗?非常感谢您提前。

标签: javascriptpythonhtmldjangohttp-status-code-404

解决方案


我有一个类似的问题,通过将应用程序的命名空间添加到 url 并像这样调用它来解决它:

{% url 'quiz_app:quiz_end' %}

推荐阅读