首页 > 解决方案 > 在 google appengine Web 应用程序中调用 JavaScript 函数的问题

问题描述

我正在尝试调用位于单独的 .js 文件中的 JavaScript 函数,但由于某些奇怪的原因,它不起作用。我确实尝试了 .js 文件的所有可能的相对路径和位置,但没有任何帮助。

这工作正常:

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

然后我在我的 webapp 文件夹中创建“hello.js”,将函数 ... {} 粘贴到其中,然后更改为:

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

而且它不起作用!我尝试了 /hello.js、/webapp/hello.js 和许多其他组合。我认为这与它是 appengine 的网络应用程序而不是网站这一事实有关,但我不知道如何正确指定 .js 文件的路径。

谢谢!

标签: javascriptjspgoogle-app-engineweb-applicationsweb.xml

解决方案


我可以通过修改我的 appengine-web.xml 文件来解决这个问题。显然,所有 *.js 文件都必须包含在 <static-files> 部分中。我已将以下内容添加到文件中:

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

将所有 *.js 文件放置到 webapp/js/,并使用以下 src 属性:

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

现在一切正常。唯一需要注意的是静态文件是被缓存的,所以最好先在jsp文件中开发和调试js代码,然后将最终版本移动到.js文件中。


推荐阅读