App Engine无法找到静态文件

时间:2013-09-18 17:06:01

标签: google-app-engine python-2.7 webapp2

我在我的app引擎应用程序上使用webapp2和python 2.7。但是,我在app.yaml上遇到了网址问题。

我的静态文件位于static/目录中,位于路径的根目录中。所以static/内部static/scripts/MyScript.js

当我设置app.yaml时:

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

handlers:
- url: /.*
  script: myapp.app

- url: /static
  static_dir: static

libraries:
- name: webapp2
  version: latest

在我的HTML代码中,js被称为: <script src="static/scripts/Fuel.js"></script>

但是,文件未加载,我收到404错误。 (此问题也适用于.css文件。

但是,如果我将app.yaml中的第一个网址更改为:

handlers:
- url: /
  script: myapp.app

静态文件已加载,但是当我尝试在我的应用程序中调用路由url时,就像我在表单中调用以在服务器上保存一些数据的URL,找不到此路由,我也收到404错误。

这是myapp.py文件中的路由代码。

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

因此,如果我尝试访问 myapp.appspot.com/save ,则会返回404错误,说:

  

在此服务器上找不到请求的网址/保存。

有什么想法吗?如果您需要更多相关信息,请询问评论。

感谢。

1 个答案:

答案 0 :(得分:6)

将您的catch all url /.*放在底部,因为这是按顺序计算的。这意味着它永远不会过去。

handlers:
- url: /static
  static_dir: static

- url: /.*
  script: myapp.app