外部文件中的 JavaScript 未加载

2023-12-24

我有一个 JavaScript 问题,这个问题已经困扰我很长一段时间了。我有一个名为 search.js 的外部文件,它与加载的 .html 文件位于同一文件夹中。

我在 HTML 中用来加载 javascript 文件的代码是:

<script type="text/javascript" src="search.js"></script>

从我读过的所有网站中,我找不到代码的问题。

另外,我知道 javascript 文件中的语法必须正确才能正常工作,因此这里是来自 search.js 的 Javascript 代码:

$(document).ready(function(){
    $('#searchForm').submit(function(){
        var lookfor = $("#billSearched").val();
        alert(lookfor);
        var a = $(this).attr('action');
        alert(a);
        a = a.replace("__search_term__",lookfor);
        alert(a);
        window.location.href = a;
        return false;
    });
});

我在另一个项目中运行了这段代码,它运行得很好,我所做的只是字段的名称,即 billSearched。

如果有任何其他原因导致 Javascript 无法在我的页面中加载,请留言或评论。

提前致谢!

EDIT

完整的html代码:

<html>
<head>
    <title>Bills</title>
    <script type="text/javascript" src="/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="/search.js"></script>
    <link rel="stylesheet" href="style.css"> 
</head>
<body bgcolor="#0066CC" color="FFFFFF">
    <table>
        <tr>
            <td style="color:white"><b>Products</b></td>
            <td style="color:white">Price</td>
            <form method="POST" id="searchForm"  action="{% url ps.views.search searchTerm='__search_term__' %}">
                {% csrf_token %}
                <td><input type="text" id="billSearched"></td>
                <td><input type="submit" value="Search"></td>
            </form>
        </tr>
        {% for x in products %}
        <tr>
        <td style="color:white">{{ x.name }}</td>
        <td style="color:white">{{ x.price }}</td>
        </tr>
        {% endfor %}
    </tr>
</table>
</body>

从标签和模板代码中,我了解到您正在使用 Django。要了解您的问题,您必须了解 Django 视图相对于您的浏览器的工作方式,以及当您的浏览器向给定 url 发出请求时会发生什么。

发生了什么Django side:

当你请求一个 url 时会发生什么,你的基础urls.py文件将被搜索以匹配您的 url 的模式。如果遇到某个模式,则对应的view将被调用。
The view将执行其逻辑,并将使用template将其响应呈现为html.

从浏览器的角度来看会发生什么

浏览器请求一个 url,并收到响应,它不知道调用了视图,并且在某处获取了模板。

这对你意味着什么

事实是你的search.js文件位于您的模板旁边完全不相关,作为您的浏览器从未请求此目录中的任何文件,这是view确实如此,当它获取它的template.

实际上,您的浏览器的请求search.js将转发至Django通过您的网络服务器,并且(很可能)会导致404错误,除非search.js解析为您的视图urls.py.

如何使用它来解决您的问题

你需要为你的search.js浏览器可以访问的目录中的文件。通常,这分三个步骤完成:

  1. 配置您的网络服务器,使其提供以以下开头的任何路径/static/就其本身而言(不知何故,这意味着不将请求转发到Django).
    在 Apache 中,您可以使用以下规则:Alias /static/ /YOUR/STATIC/DIRECTORY/

  2. 配置Django's settings.py to use /YOUR/STATIC/DIR as STATIC_ROOT, and /static/ as STATIC_URL.

  3. 把你的search.js文件在你的/YOUR/STATIC/DIR/

  4. Use src="/static/search.js在您的文件中引用您的文件html模板。

最后一件事:如果您使用开发服务器,您可能需要确保您的STATIC_URL从服务器的完整路径开始,包括端口。 (或者您可能遇到浏览器安全策略问题)。

一些补充:

您应该使用模板标签,这样您就不必编写/static/在你的模板中。
你应该使用manage.py collectstatic自动将静态文件放入静态目录中。

最重要的是,你应该调查一下 Django 的 MVC(或 MTV)模型是关于什么的.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

外部文件中的 JavaScript 未加载 的相关文章

随机推荐

  • CodeIgniter 辅助函数可以使用数据库函数吗?

    我的 CodeIgniter 控制器函数之一需要调用递归函数作为其功能的一部分 如果我将函数调用放在控制器类中 函数调用就会阻塞 并且它无法访问数据库函数 this gt db gt get 如果我把它放在课堂之外 让它成为辅助函数可以解决
  • 在 UISlider 下添加数字

    我有一个用它实现的 UISliderJQuery UI 我想在显示数字的滑块下添加一个图例 我跟着这个答案 https stackoverflow com a 16877678 4861207它展示了如何实现这一点 然后将数字与百分比值一起
  • Rails:在任何来源中都找不到 minitest-4.7.5

    这里有一个麻烦 在我的远程服务器命令上gem list shows some gems minitest 4 7 5 bundle show minitest命令显示 var lib gems 1 9 1 gems minitest 4 7
  • Javascript:如何重用创建子实例的方法而不创建循环依赖项

    abstract class Fruit private content Fruit addChild Pick one at random using this as an example instead of the actual cr
  • 使用 jquery 从 获取复选框值

    http ghinda net css toggle switch bootstrap html http ghinda net css toggle switch bootstrap html 我使用上面的 css 文件和代码来制作切换开
  • Keras - 历元相关损失函数

    我正在使用 Keras 框架 我想实现一个与纪元相关的损失函数 即每个纪元的损失函数都不相同 你会怎么做 您能否添加一个示例 例如基于keras VAE 教程 https github com fchollet keras blob mas
  • iOS 设备 UDID 区分大小写吗?

    这是关于将设备添加到配置门户以进行临时测试 一个客户给我发了一个带有大写字符的 UDID 我没有检查就愚蠢地添加了它 无线部署不起作用 我想知道这是否是原因 但我想在用完我的 100 个分配之一之前先检查一下 Yes UDIDs区分大小写
  • 为什么 linq-2-sql 会创建额外的不必要的对象?

    我在数据库中有一个简单的父子表 如下所示 CREATE TABLE Parent Id int IDENTITY 1 1 NOT NULL Name nvarchar 256 NOT NULL ALTER TABLE Parent ADD
  • 使用 C# 突出显示 Docx 中的文本

    我需要突出显示 docx 文件中的一个句子 我有这段代码 并且它对于许多文档都可以正常工作 但我注意到对于某些文档 文档中的文本是逐字设置的 而不是整个句子 我的意思是每个单词它自己的Run 所以当搜索该句子时 找不到它 因为它在docx中
  • 使用 Eclipse 部署到 AppEngine 时出错

    每当我尝试将 Web 应用程序部署到 Google App Engine 时 无论女巫应用程序如何 甚至是演示应用程序 我都会遇到此问题 当我尝试部署时立即发生错误 错误是这样说的 部署到 AppEngine 时出错 部署到 App Eng
  • 如何在 Windows 上通过命令行以全屏视图打开 pdf?

    我可以使用以下命令通过命令行打开 pdf 文档 start test pdf 但我想通过命令行以全屏模式打开它 有人知道该怎么做吗 这应该可以做到 start max c nameofpdf pdf 这样做的优点是 如果用户使用非 adob
  • 如何从 pandas 数据帧计算 jaccard 相似度

    我有一个数据框如下 框架的形状是 1510 1399 列代表产品 行代表用户为给定产品分配的值 0 或 1 我怎样才能计算jaccard similarity scores 我创建了一个占位符数据框 列出了产品与产品 data ibs pd
  • AccessDenied:用户无权执行:cloudfront:CreateInvalidation

    我正在尝试使用 ember cli deploy 和 ember cli deploy cloudfront 将 ember 应用程序部署到 AWS CloudFront 我在 AWS 中设置了存储桶和用户 并为我的用户提供了 Amazon
  • 如何处理 Angular 2 中的模板错误(和其他错误)?

    当 Angular 2 中出现模板错误时 整个应用程序将无法工作 是否应该只有具有导致错误的模板的组件无法工作而应用程序的其余部分工作正常 如何处理错误以便应用程序在发生错误时不会停止响应 您可以使用自定义ErrorHandler http
  • 如何将 Kotlin 源文件转换为 Java 源文件

    我有一个 Kotlin 源文件 但我想将其转换为 Java 如何将 Kotlin 源代码转换为 Java 源代码 正如 Vadzim 所说 在 IntelliJ 或 Android Studio 中 您只需执行以下操作即可从 kotlin
  • 如何使用 View 的子级制作绘图动画,逐条绘制每条 Path 的线条?

    使用我在中找到的代码这个 StackOverflow 答案 https stackoverflow com a 61843394 3692177我成功地可以用手指在画布上绘制任何内容 并且在绘制时我会看到我绘制的内容 由此 我想创建一个在按
  • 来自守护程序的错误响应:未找到网络 myapp

    我正在尝试在多主机网络中创建一个容器 但在创建时出现此错误 Error response from daemon network myapp not found Here myapp是我创建的覆盖网络的名称 我正在使用的命令是 sudo d
  • Xcode 4 内部编译器错误:总线错误

    Xcode 4 0 1 开始出现内部编译器错误 它只是说 总线错误 它出现在我的一个 m 文件的底部 该文件现在几乎有 4000 行长 我看过这个问题 https stackoverflow com questions 5042256 in
  • StructureMap 和扫描组件

    因此 我有一个使用 StructureMap 的 NET 解决方案 并且我想让 StructureMap 读取一个外部程序集 该程序集实现该解决方案中项目的接口并为其定义注册表项 我的解决方案的 StructreMap 配置 ObjectF
  • 外部文件中的 JavaScript 未加载

    我有一个 JavaScript 问题 这个问题已经困扰我很长一段时间了 我有一个名为 search js 的外部文件 它与加载的 html 文件位于同一文件夹中 我在 HTML 中用来加载 javascript 文件的代码是 从我读过的所有