Ошибка вызова функции JavaScript в веб-приложении Google Appengine. - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь вызвать функцию JavaScript, расположенную в отдельном файле .js, но по какой-то странной причине она не работает. Я буквально перепробовал все возможные относительные пути и местоположения файла .js, но ничего не помогло.

Это прекрасно работает:

<div style="border: 1px solid red; background-color: burlywood">
    <p id="debug"></p>
</div>
<script>
    function hello() {
        document.getElementById("debug").innerHTML = "hello";
    }
</script>

Затем я создаю «hello.js» в папке своего веб-приложения, вставляю в нее функцию ... {} и изменяю на:

<script src="hello.js"></script>

И это не работает! Я пробовал /hello.js, /webapp/hello.js и множество других комбинаций. Я думаю, что это как-то связано с тем, что это веб-приложение для appengine, а не веб-сайт, но я не могу понять, как мне нужно правильно указать путь к файлу .js.

Спасибо!

1 Ответ

0 голосов
/ 06 января 2019

Мне удалось это исправить, изменив мой файл appengine-web.xml. Очевидно, что все файлы * .js должны быть включены в раздел . Я добавил в файл следующее:

  <static-files>
    <include path="/js/**.js" />
  </static-files>

Поместил все файлы * .js в webapp / js / и использовал следующий атрибут src:

<script src="js/file_name.js"></script>

Теперь все работает нормально. Единственное, что нужно знать, это то, что статические файлы кэшируются, поэтому лучше сначала разработать и отладить js-код в jsp-файлах, а затем переместить окончательную версию в файл .js.

...