gpt4 book ai didi

Django - 在根目录中放置和访问 js 文件

转载 作者:行者123 更新时间:2023-12-01 04:59:23 24 4
gpt4 key购买 nike

我正在尝试在我的 Django 项目中实现 Firebase 云消息推送通知。
Firebase 会查找名为 firebase-messaging-sw.js 的 js 文件在项目的根目录中(不管它是什么类型的项目)。

所以,问题是我无法弄清楚我的项目的根目录是什么(抱歉,愚蠢),以及如何让 Firebase 看到这个文件。作为一个实验,我将 js 文件复制粘贴到我项目的每个文件夹中,但仍然没有成功(Firebase 服务看不到该文件)。

这是我的 settings.py文件(带有相关内容):

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

ROOT_URLCONF = 'android_blend.urls'

WSGI_APPLICATION = 'android_blend.wsgi.application'
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

STATIC_URL = '/static/'

if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),"static","static-only")
#STATIC_ROOT = [os.path.join(BASE_DIR,"static-only")]
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR),"static","media")
#MEDIA_ROOT = [os.path.join(BASE_DIR,"media")]
STATICFILES_DIRS = (
#os.path.join(os.path.dirname(BASE_DIR),"static","static"),
os.path.join(BASE_DIR,"static"),
)

我的Django项目布局是这样的:
android_blend
android_blend
settings.py
url.py
wsgi.py
app1
app2
...
appN
manage.py

所以问题是,我应该怎么做才能让外部服务应用程序(Google Firebase)能够看到 javascript 文件?

在我的浏览器中,我收到以下错误:

A bad HTTP response code (404) was received when fetching the script.

最佳答案

我也面临同样的问题。

我通过以下方式尝试过:

urls.py 中添加以下行

url(r'^firebase-messaging-sw.js', views.firebase_messaging_sw_js),

现在在 view.py 中添加函数文件
@csrf_exempt
def firebase_messaging_sw_js(request):
filename = '/static/firebase-messaging-sw.js'
jsfile = open(absAppPath + filename, 'rb')
response = HttpResponse(content=jsfile)
response['Content-Type'] = 'text/javascript'
response['Content-Disposition'] = 'attachment; filename="%s"' % (absAppPath + filename)
return response

所以 localhost:8000/firebase-messaging-sw.js会正常工作...

希望能帮到你...

关于Django - 在根目录中放置和访问 js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com