Igo*_*ush 5 python mod-wsgi wsgi pyramid
到目前为止,我一直在使用Pyramid从python包中的文件夹中提供静态资源,如文档中所述:
config.add_static_view('static', 'myapp:static')
Run Code Online (Sandbox Code Playgroud)
并从模板加载它们如下:
<script type="text/javascript" src="{{ request.application_url }}/static/js/jquery-1.7.1.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
但是,我注意到Chrome会发出如下警告:
Resource interpreted as Stylesheet but transferred with MIME type apache/2.2.14: "http://mydomain.com/static/js/jquery-1.7.1.min.js"
Run Code Online (Sandbox Code Playgroud)
要么
Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://mydomain.com/static/js/jquery-1.7.1.min.js"
Run Code Online (Sandbox Code Playgroud)
这在硬刷新时发生,并且似乎在3-4中随机资源加载<head>了错误的Content-Type标头(根据Pyramid文档,标头由文件扩展名确定).
我没有能够推断出如何设置错误标头的模式.有时,它适用text/plain于javascript/CSS文件,有时它是一个类似的路径/static/js/something.js(并且此路径与请求URL无关),有时它是Server标题的值,apache/2.2.14如上所述.
这是一个很大的问题,因为当返回带有错误内容类型的CSS时,它不会被渲染,这会破坏整个页面.我通过捕获/staticApache的请求,并使用它来提供静态资产,同时让所有其他请求通过金字塔来解决这个问题.我不再在Chrome中看到错误的MIME类型警告.但是,我想知道是否有人遇到过这个问题,以及它是否是金字塔错误,或者我是否在做其他错误.
编辑:我忘了提供我如何部署我的应用程序的规格.生产服务器运行Apache 2.2,应用程序在mod_wsgi下运行.我遵循的过程几乎是本教程中逐字描述的:http://docs.pylonsproject.org/projects/pyramid/en/1.0-branch/tutorials/modwsgi/index.html.重要提示:只有通过mod_wsgi在Apache上运行时才会出现此问题.当我在服务员本地运行应用程序时,Content-Type标头始终是正确的.
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |