Hello, I had some difficulties to set up some "routes_onerror" files on GAE. It worked perfectly on a local instance, but each time an HTTP exception was raised, GAE issued a "file inaccessible" error (status 500).
The problem comes from the fact that static files are treated specially on GAE and are by default not counted in the applicatin quota and not accessible to the application. One solution is the to add "application_readable: true" to the static url handler in the app.yaml file. But doing this, all static files are counted in the quota. We however can not put the error files outside of the static directory, where web2py expect them. So, my solution is : In the routes.py put something like: routes_onerror= ( ('*/503', '/appname/static/_0.0.0/error_handlers/503.html'), ('*/404', '/appname/static/_0.0.0/error_handlers/404.html'), ('*/*', '/appname/static/_0.0.0/error_handlers/default_error.html'), ) (suppress _0.0.0/ if you don't use static asset management). And in the app.yaml: - url: /(.+?)/static/_(\d+\.\d+\.\d+)\/error_handlers/(.+) static_files: applications/\1/static/error_handlers/\3 upload: applications/(.+?)/static/error_handlers/(.+) secure: optional expiration: "365d" application_readable: true - url: /(.+?)/static/_(\d+\.\d+\.\d+)\/(?!error_handlers)(.+) static_files: applications/\1/static/\3 upload: applications/(.+?)/static/(?!error_handlers)(.+) secure: optional expiration: "365d" Note the use of (?!…) to prevent the regexp to match our error handlers file. If you don't use static asset management, the code would be : - url: /(.+?)/static/error_handlers/(.+) static_files: applications/\1/static/error_handlers/\2 upload: applications/(.+?)/static/error_handlers/(.+) secure: optional application_readable: true - url: /(.+?)/static/(?!error_handlers)(.+) static_files: applications/\1/static/\2 upload: applications/(.+?)/static/(?!error_handlers)(.+) secure: optional See https://cloud.google.com/appengine/docs/python/config/appref#handlers_element for documentation about "application_readable" parameter. Hope this may help others. -Mathieu -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.