Django 使用 javascript 提供静态 html 文件
Django serving static html file with javascript
我有一个奇怪的情况,我试图提供一个静态 index.html 文件,其中包含来自 webpack 的 javascript 包,用于 vue.js 文件,但它正在发送javascript 文件内容不正确。
我试过将 html 文件作为模板视图发送,并简单地读取文件内容并将其作为 html 响应发送。它正确地发送 html 文件本身,但它没有发送 javascript 文件的内容,而是将 index.html 内容复制到 javascript 文件中。
我检查以确保我没有不小心用 html 内容覆盖 javascript 文件,但事实并非如此,javascript 的格式正确,但是当它被发送到浏览器这是看到的:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>testprojsimple</title>
</head>
<body>
<div id="app"></div>
<script src="js/myvuejs.bundle.js"></script>
</body>`
</html>
myvuejs.bundle.js:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>testprojsimple</title>
</head>
<body>
<div id="app"></div>
<script src="js/myvuejs.bundle.js"></script>
</body>`
</html>
关于为什么将 index.html 内容也作为 javascript 文件重新发送有什么想法吗?
编辑:
我目前处于开发模式,服务只需在视图中说:
def indexView(request):
return HttpResponse(open("file/to/static/html/file/index.html").read())
Settings.py:
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
urls.py:
urlpatterns = [
url(r'^', indexView),
]
我的目标是避免服务器端渲染,使用客户端框架进入提供数据内容的 django 后端,例如 json,等等...
正则表达式 ^
匹配每个 URL;它只是意味着 "any string that starts",这当然是每个字符串。您还应该终止该模式:^$
,以便它只捕获空字符串。
我有一个奇怪的情况,我试图提供一个静态 index.html 文件,其中包含来自 webpack 的 javascript 包,用于 vue.js 文件,但它正在发送javascript 文件内容不正确。
我试过将 html 文件作为模板视图发送,并简单地读取文件内容并将其作为 html 响应发送。它正确地发送 html 文件本身,但它没有发送 javascript 文件的内容,而是将 index.html 内容复制到 javascript 文件中。
我检查以确保我没有不小心用 html 内容覆盖 javascript 文件,但事实并非如此,javascript 的格式正确,但是当它被发送到浏览器这是看到的:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>testprojsimple</title>
</head>
<body>
<div id="app"></div>
<script src="js/myvuejs.bundle.js"></script>
</body>`
</html>
myvuejs.bundle.js:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>testprojsimple</title>
</head>
<body>
<div id="app"></div>
<script src="js/myvuejs.bundle.js"></script>
</body>`
</html>
关于为什么将 index.html 内容也作为 javascript 文件重新发送有什么想法吗?
编辑:
我目前处于开发模式,服务只需在视图中说:
def indexView(request):
return HttpResponse(open("file/to/static/html/file/index.html").read())
Settings.py:
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
urls.py:
urlpatterns = [
url(r'^', indexView),
]
我的目标是避免服务器端渲染,使用客户端框架进入提供数据内容的 django 后端,例如 json,等等...
正则表达式 ^
匹配每个 URL;它只是意味着 "any string that starts",这当然是每个字符串。您还应该终止该模式:^$
,以便它只捕获空字符串。