我的html文件引用static
文件夹中的.js文件,该文件夹与.html
文件目录(模板)不同。当我运行.html
文件时,它会正常加载.js
文件。问题是,如果我在本地服务器上运行应用程序,我会收到错误消息:
GET http://localhost:63342/UniteMessageBoard/templates/%5CUniteMessageBoard%5Cstatic%5Cjquery.js [HTTP/1.1 404 Not Found 1ms]
并且脚本无法加载。
这是我的html
代码:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<script type="text/javascript" src="\UniteMessageBoard\static\jquery.js"></script>
<script type="text/javascript" src="\UniteMessageBoard\static\script.js"></script>
</head>
<body>
<h1> {{ title }} </h1>
<input type="button" id="submit2" value="get it">
</body>
</html>
和我的script.js
代码:
console.log('loaded script.js');
$(document).ready(function () {
$("#submit2").on('click', function (event) {
handleClick();
});
});
function handleClick() {
alert("We got here");
$.ajax('/', {
type: 'GET',
data: {
fmt: 'json'
}
});
}
和main.py
代码:
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
class MainHandler (webapp2.RequestHandler):
def get(self):
self.templateValues = {}
self.templateValues['title'] = 'jQuery JSON Tutorial 2'
template = JINJA_ENVIRONMENT.get_template('templates/base.html')
self.response.out.write(template.render(self.templateValues))
app = webapp2.WSGIApplication([
('/.*', MainHandler)
], debug=True)
如果我在本地运行应用程序,这是我得到的错误代码:
[HTTP/1.1 200 OK 18ms]
即使它实际上没有加载。
修改 这是我的目录树:
答案 0 :(得分:0)
你几乎可以肯定在Windows机箱上开发。我可以告诉我\
代替/
。问题是您在localhost上运行的Web服务器希望这些服务器是/
。因此,在本地访问文件,而不通过Web服务器,它可以工作,但一旦你到达服务器它就会中断。