虽然我的css是有效的,但我在django中的脚本标签却无法正常工作。
我将MEDIA_URL
和STATIC_URL
包括在基本urls.py
中,如下所示:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
仅具有属性integrity
和crossorigin
的脚本标签有效(外部引导CDN和JQuery)。但是其他脚本,即本地脚本(JavaScript在同一文件中,如我将在下面显示)和带有外部源链接的脚本标签(如<script src="https://js.stripe.com/v3/"></script>
)不起作用。
无法运行的JavaScript代码是:
<button id="togglebtn" class="btn btn-warning" style="width: 100%;">
Checkout with a credit card
</button> //onClick didn't work
<script type="text/javascript">
function toggleDisplay() {
var x = document.getElementById("collapseStripe");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
document.getElementById("togglebtn").addEventListener("click", toggleDisplay);
</script>
我已经在我的settings.py文件中添加了CSP:
CSP_STYLE_SRC = ("'self'", 'https://stackpath.bootstrapcdn.com/', ' https://use.fontawesome.com/releases/v5.0.13/css/all.css ',)
CSP_FONT_SRC = ("'self'", 'https://use.fontawesome.com/', )
CSP_IMG_SRC = ("'self'", 'https://js.stripe.com',)
CSP_FRAME_ANCESTORS = ("'self'", 'frame-ancestors', 'https://js.stripe.com/v3/', 'https://js.stripe.com',)
CSP_SCRIPT_SRC = ("'self'", 'https://ajax.googleapis.com/', 'https://code.jquery.com/', 'https://cdnjs.cloudflare.com/',
'https://stackpath.bootstrapcdn.com/', 'https://js.stripe.com/v3/', 'https://js.stripe.com',
)
我不知道这是否是脚本的障碍。