静态文件丢失
在我的应用程序中有一个/static
文件夹,其中包含应用程序所需的所有静态资源。 这是我的静态资源处理程序:
- url: /static static_dir: static
这适用于直接在/static
文件,但是假设我还有另一个包含jQuery的文件夹:
static |- jquery | \- jquery.js | \- images \- ...
当我尝试访问[myapp].appspot.com/static/jquery/jquery.js
,它将返回404并且我不知道为什么。
我的一些文件,包括.css
和.ttf
等,给我一个Could not guess mimtype
错误。 我不知道如何解决这个问题。
编辑
添加了我的(新)app.yaml。 我没有dispatch.yaml。
version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: /static/pages_style mime_type: text/css static_dir: /static/pages_style - url: /static/images/(.*\.(gif|png|jpg))$ static_files: static/images/\1 upload: static/images/.*\.(gif|png|jpg)$ - url: /static/bootstrap 3.3.5 static_dir: /static/bootstrap 3.3.5 - url: /static/jquery 2.1.4 static_dir: /static/jquery 2.1.4 - url: /.* script: myapp.app libraries: - name: webapp2 version: latest - name: jinja2 version: latest
[myapp].appspot.com/static/jquery/jquery.js
请求中的404
错误是由static_files
URL模式位于static_dir
URL路径下引起的:
- url: /static/(.*\.css)$ static_files: static/\1 upload: static/(.*\.css)$ - url: /static static_dir: static
在上面的示例中/static/(.*\.css)$
匹配位于/static
。 我想GAE infra中的静态目录/文件路由在这种情况下会混淆。
解决方案是使路径更具体,使static_dir
URL永远不会包含与static_files
URL模式或其他static_dir
URL匹配的路径。
关于Could not guess mimetype
错误,这个Q&A很好地解释了: 无法猜测mimetype