使用“发送脉冲”时,它们会指示您将javascript放在模板的开头。然后,此javascript引用另外2个脚本,它们指示您将其放置在网站的根目录中。可以在哪里放置这些内容,以便其javascript自动在“网络根目录”中找到它们?
答案 0 :(得分:0)
重点是该服务希望直接在/
下找到脚本,例如mywebsite.com/script1.js
。但是在Django中,静态文件通常位于/static
下或等效文件下。您无法在任何地方“放置”它们以使它们出现在正确的URL。
但这并不意味着您不能这样做。最好的办法是在Web服务器(nginx或Apache)中为这些脚本添加显式映射。例如,在nginx中:
location /script1.js { alias /path/to/staticdir/script1.js; }
答案 1 :(得分:0)
您有许多可能的选择。没有特别的顺序:
/static
文件夹中加载脚本(当然,将脚本放置在此处)HttpResponse
从视图函数返回这些脚本,然后将目标URL(例如mywebsite.com/script1.js)映射到视图。 这看起来像:
# urls.py - assuming >= Django 2.0
from django.urls import path
urlpatterns = [
# place script1.js into your static folder, then reference its location within the static folder
path('script1.js', views.javascript_loader, {'script_path': 'script1.js'}),
]
# views.py
from django.http import HttpResponse
from django.conf import settings
import os
def javascript_loader(request, script_path):
# note: you should cache this content for the use case you've described, just
# consider this an illustration of how to load/return content from a static
# file using a view.
full_script_path = os.path.join(settings.STATIC_ROOT, script_path)
with open(full_script_path, 'r') as f:
javascript_contents = f.read()
return HttpResponse(javascript_contents, mimetype="text/javascript")
同样,不确定哪种解决方案最适合您的需求,但是其中的 应该会为您提供所需的结果。