运行Flask时未添加外部JavaScript文件
我有一个叫做 showMap.html 的HTML文件:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Map</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript" src="js/map.js"></script>
</head>
<body onload="showPosition()">
<div id="map_canvas" style="width:500px;height:500px;"></div>
</body>
</html>
还有一个JavaScript文件 map.js,它放在同一个目录下的 js 文件夹里。
当我加载这个HTML文件时,代码运行得很好,但在服务器上运行时就不行了。
我使用Python的Flask框架进行后端编程,搞笑的是,如果我把JavaScript代码直接写在HTML文件里,它就能正常工作。唯一的问题就是外部的那个文件。
相关问题:
4 个回答
0
我也遇到了同样的问题,对于样式表来说,URL_FOR可以正常使用,但对于JavaScript就不行了。
我不得不写了下面的代码:
<script type="text/javascript" src="static/map.js"/>
这样就解决了我的问题。
16
第一步:在项目的根目录下创建一个名为 static 的文件夹。
第二步:把静态文件放到这个 static 文件夹里。
第三步:在模板中添加相关内容。
<script type="text/javascript" src="{{ url_for('static', filename = 'hello.js') }}"></script>
134
将 map.js 文件作为一个 静态资源 来提供:
把这个文件移动到你的包的
static/子目录里在 Jinja2 模板中为它生成一个静态 URL,方法如下:
<script type="text/javascript" src="{{ url_for('static', filename='map.js') }}"></script>
filename 参数需要一个相对路径;如果需要的话,你可以使用子目录。