如何将js放在djang的顶级域中

2024-09-22 20:19:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在我的网站上通过阅读文档OneSignal WebPush notification实现一个单推通知。他们说把相应的javascript放在顶级域上? 在django中,所有文件都是通过路由定位的,所以我应该如何将js放在顶级域级别上呢?你知道吗

例如


Tags: 文件django文档https定位com路由网站
2条回答

Django不建议通过视图提供静态文件。所以您应该使用nginx或apache来完成。为提供这样的文件而设置这两者是相当容易的。你知道吗

Nginx示例(未测试)-

location (OneSignalSDKWorker.js|manifest.json) {
    root /path/to/files/directory;
}

如果必须在Django中执行,可以将以下内容添加到主urls.py

from django.views.generic import TemplateView

urlpatterns = [
    ...
    path(
        "manifest.json",
        TemplateView.as_view(
            template_name="path/to/manifest.json",
            content_type="application/json"
        ),
        name="manifest.json",
    ),
    path(
        "OneSignalSDKWorker.js",
        TemplateView.as_view(
            template_name="path/to/OneSignalSDKWorker.js",
            content_type="application/javascript"
        ),
        name="OneSignalSDKWorker.js",
    ),
    ...
]

医生说

Upload the files to the top-level root of your site directory. The following URLs should be publicly accessible:

如果您在调试模式下运行服务器,您可以将route添加到publicstatic文件夹(最好有两个单独的文件夹:basicstatic和static,比如scripts和500.html/404.html文件)。w型

所以你需要有两个不同的模式。你知道吗

在生产环境中,静态服务应该通过http服务器(如Nginx)存储

相关问题 更多 >