繁体   English   中英

在Django JavaScript文件中引用其他静态文件

[英]Reference other static file in django javascript file

我需要将文件加载到与电话自动格式化程序库一起使用的函数中( 国际电话输入 ),当我在独立的html页面中尝试此操作时,它工作正常,但是当我尝试在django项目中进行操作时,文件只是没有加载,我认为这是因为找不到路径中的位置。

main.js和utils.js都在我项目的静态目录中,所以我不确定为什么找不到utils.js文件。

main.js:

$(document).ready(function() {
    $("#phoneNumber").intlTelInput({
        utilsScript: "utils.js"
    });
});

在需要引用JavaScript中的服务器端路径的情况下,我要做的是在最上面的模板中设置一个“ app”对象,我可以在随后加载的JavaScript文件(通常是require.js)中引用该对象。

例:

# base.html (upper-most template)
<!DOCTYPE html>{% load static from staticfiles %}
    <html>
        <head>. . .</head>
        <body>
            . . .
            <script>
                var myApp = {
                    staticUrl: '{{ STATIC_URL }}'
                }
            </script>
            <script src="{% static 'js/some-file.js' %}"></script>
        </body>
    </html>

# some-file.js

'use strict';

$(document).ready(function(){
    console.log(myApp.staticUrl);
});

查看您的URL调度程序( urls.py ),以了解可能请求静态文件的实际路径是什么。

例如,在我的一个项目中,JavaScript文件位于/static/js/

因此,举例来说,如果您的配置也是如此,那么您可以-

$(document).ready(function() {
    $("#phoneNumber").intlTelInput({
        utilsScript: "/static/js/utils.js"
    });
});

那就是如果您想对URL进行硬编码。 您可以在模板或模板引擎未处理的.js文件中执行此操作。

但是,如果您使用的是模板,我建议您使用staticfiles应用程序 ,尤其是使用static模板标记,该标记可帮助您建立文件的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM