【问题标题】:In Django 3 how do I access my templates-directory using Javascript?在 Django 3 中,如何使用 Javascript 访问我的模板目录?
【发布时间】:2020-02-10 08:45:50
【问题描述】:

也许我做错了。当用户单击某个<div> 时,我想使用jQuery.load() 替换<nav> 元素的内容。但我无法访问要替换内容的 html 文件。无论我将负载指向哪个 url,控制台总是显示:"GET http://127.0.0.1:8000/templates/nav_form.html 404 (Not Found)"

我的 Javascript (jQuery) 是:

jQuery( '#EditIcon' ).on( 'click', function(){
    jQuery( 'nav' ).load( 'templates/nav_form.html' )
});

所以在示例中我使用了 url templates/nav_form.html。当我用../templates/nav_form.html./templates/nav_form.html 替换它时,控制台中的消息仍然相同,告诉我他找不到http://127.0.0.1:8000/templates/nav_form.html

【问题讨论】:

  • 我认为您需要定义一个返回该模板的 url,然后使用该 url 获取模板并根据需要加载它。如果 html 文件是静态的并且没有被 url 使用,您可以将其保存在 static 文件夹中并添加静态 url 并使用静态加载它。
  • 如果我做对了,这将涉及加载一个包含模板的全新 html 文档。我想要的是只替换
  • 在 urls.py 中创建一个单独的路径并使用它来服务您的模板文件夹

标签: javascript python jquery django ajax


【解决方案1】:

您可以通过将其添加到您的 urls.py 中来公开您的模板目录以用作静态文件

from django.conf.urls.static import static

PATH = '/get-static-templates/'
ROOT = '/var/www/html/templates/'

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(PATH, document_root=ROOT)

这里的 PATH 是 url 路径,即localhost:8000/get-static-template/,ROOT 是您要服务的文件夹的绝对路径。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2014-04-08
    • 2019-05-16
    • 2019-05-24
    • 2011-03-21
    • 1970-01-01
    • 2020-09-09
    • 2020-05-18
    • 2020-07-27
    相关资源
    最近更新 更多