2011-03-12 65 views
4

我非常困惑在Google App Engine中加载JavaScript。我正在使用Django模板。在Google App Engine中加载JavaScript

首先,在我的基地 HTML文件,我不能从本地说,d:/jquery.js加载我下载的jQuery代码,像

<script src="d:\jquery.js" type="text/javascript" ></script></head>, 

这条线路是在我的基地HTML文件。它在我从远程加载jQuery时起作用。像

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"type="text/javascript" ></script></head> 

我不知道为什么。

其次,我无法将我自己创建的JavaScript代码加载到我的HTML文件中。假设我创建了一个JavaScript文件,例如layout.js,并且我尝试在我的子HTML文件中像这样加载它,顺便说一下,它从基地 HTML继承。

<body><script src="layout.js" type="text/javascript"></script></body> 

而且它根本不起作用。我尝试过的唯一方法是将实际的JavaScript代码放入基本HTML文件的主体中。像

<body><script> 
    $(document).ready(
     $("#yes").click(function() { 
      $("#no").hide("slow"); 
    })); 
</script> 

我不知道为什么要么......我该如何解决它?

+0

你能字你的问题更清楚,或者至少把它分解成几段?还要注意\是插入代码的正确字符,而不是* – 2011-03-12 16:05:12

+4

您如何认真地期望您的前端代码从本地计算机加载脚本? – 2011-03-12 17:01:39

回答

17

AppEngine不知道本地系统上的任何路径;它只会上传您配置的文件。通过在你的app.yaml文件中这样一行做到这一点:

handlers: 
- url: /js 
    static_dir: js 

在这种情况下,/js代表您的主项目目录的子目录,你可以把你所有的静态JavaScript文件在里面。他们将被上传到生产服务器,你可以将它们包含在你的HTML:

<script src="/js/jquery.js" type="text/javascript" ></script> 
+1

谢谢你回复我,但我配置我的app.yaml就像你上面说的,并把我所有的javascirpt文件放入js子文件夹中。但仍然有错误,说404未找到... **请求URL:http:// localhost:8080/js/jquery.js 请求方法:GET 状态码:404未找到**,谢谢 – 2011-03-12 19:46:14

+9

检查您的app.yaml中的url处理程序的顺序。如果你没有在/.*之上的/ js处理程序,那么在/ js规则有机会之前,/.*规则将会捕获所有GET请求(包括你的js目录)。 – 2011-05-09 06:49:55