【问题标题】:Javascript doesn't work in my localhost using Google App ENgineJavascript 在我的本地主机中无法使用 Google App ENgine
【发布时间】:2013-08-27 13:46:01
【问题描述】:

我被困了一个星期,我已经浏览了一百万个西班牙语和英语论坛......

问题是当我从 Google App Engine 启动我的网站时,Javascript 在我的本地主机上不起作用。

如果我复制/粘贴所有 html、css 和 .js 文件,然后在浏览器中从 Notepad++ 启动,效果很好,但由于任何原因在 GAE 上不起作用,我不知道为什么。

app.yaml 有效,因为如果我在浏览器中编写:

http://localhost:8080/js/script.js ,然后出现javascript代码。

这是我所有的代码:

HTML:

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

JS:

$(document).ready(function() {
    $("#ingles").fadeOut(1000);
});

我的 app.yaml:

application: juanmamorenoportfolio
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /stylesheets
  static_dir: stylesheets

- url: /images
  static_dir: static_files/images

- url: /js
  static_dir: js

- url: .*
  upload: templates/index.html
  static_files: templates/index.html

libraries:
- name: webapp2
  version: latest
- name: jinja2
  version: latest

还有我的main.py(我怀疑问题应该出在这里):

import os
import webapp2
import jinja2

jinja_environment = jinja2.Environment(autoescape=True,
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))

class MainHandler(webapp2.RequestHandler):
    def get(self):
        template = jinja_environment.get_template('index.html')
        self.response.out.write(template.render())

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

非常感谢!!

【问题讨论】:

  • 您的jquery 文件引用是否正确?页面上是否有包含Idingles 的元素?
  • 浏览器控制台是否报错?
  • 浏览器控制台中没有错误。 localhost:8080/js/jquery.js 也显示 js 代码,是的,有一个名为“ingles”的 元素
  • 一切看起来都很好,这就是为什么我怀疑它与我的 main.py 文件、app.yaml 或其他意外问题有关

标签: javascript jquery python google-app-engine


【解决方案1】:

Javascript 在 SDK 和生产环境中完美运行。

  1. app.yaml 错误 - 将正确的路径写入 jquery.js。
  2. 将文件放在需要的位置或您之前指向的位置。
  3. 检查您是否在 url 规范中使用正则表达式,因为它不是简单的字符串。
  4. - url: 中可能需要 upload:
  5. 尝试http://localhost:8080/js/script.js 检查是否显示代码。
  6. 检查页面是否 HTML 正常。
  7. 检查是否在 Chrome 控制台中定义了 $。
  8. 为我的答案投票。

阅读文档Static file handlers

【讨论】:

  • jquery.js 的路径有效,如果我运行 localhost:8080/js/jquery.js 浏览器会显示 jquery 代码(作为文本)。如何做“上传:”的事情?为什么这很重要?官方文档对这个问题不是很清楚
  • 上传是一些不需要的文件的正则表达式,但如果需要,您需要从 app.yaml /js/jquery\.js 指定路径(将其调整为您的项目)。
  • 如果您看到源代码,则问题未提供 - 它是 HTML 或使用 - 在 Chrome 网络活动中查看它是否在页面上加载以及内容类型的标题。默认情况下 gae 服务 js 没有问题。我认为这是您的错误或某些过于强大的防病毒软件。
【解决方案2】:

是的,它与upload: 事物有关:Static file pattern handlers

【讨论】:

  • 本地主机不需要上传,但需要上传
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2012-05-15
  • 2013-08-07
  • 2013-11-01
  • 2012-07-12
  • 2019-09-05
相关资源
最近更新 更多