我在我的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错误,说:
在此服务器上找不到请求的网址/保存。
有什么想法吗?如果您需要更多相关信息,请询问评论。
感谢。
答案 0 :(得分:6)
将您的catch all url /.*放在底部,因为这是按顺序计算的。这意味着它永远不会过去。
handlers:
- url: /static
static_dir: static
- url: /.*
script: myapp.app