Внешний файл javascript не добавляется при запуске на flask

У меня есть HTML-файл с именем showMap.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.js помещается в папку js того же каталога.Этот код отлично работает при загрузке html-файла.Но это не работает, когда я запускаю его на сервере.Я использую Python Flask framework для программирования back end.И самое смешное, что то же самое будет хорошо работать, если я разверну код javascript в html-файле.Единственная проблема с внешним файлом.

3 ответов


служить как статический ресурс:

  • переместить файл в static/ поддиректорию пакета

  • создайте статический URL-адрес для него в шаблоне Jinja2, например:

    <script type="text/javascript" src="{{ url_for('static', filename='map.js') }}"></script>
    

Шаг 1: Создайте папку с именем static в корне проекта

Шаг 2: Добавить статические файлы в статическую папку

Шаг 3 Добавить в шаблон

<script type="text/javascript" src="{{ url_for('static', filename = 'hello.js') }}"></script>

Я хочу добавить к ответу Martijn, что вы должны связать свой JS-файл точно так:

<script type="text/javascript" src="{{ url_for('static', filename='map.js') }}"></script>

а не так:

<script type="text/javascript" src="{{ url_for('static', filename='map.js') }}"/>