由 Quarkus 提供的带有错误 Content-Type 标头的 Wasm 文件
Posted
技术标签:
【中文标题】由 Quarkus 提供的带有错误 Content-Type 标头的 Wasm 文件【英文标题】:Wasm file served with wrong Content-Type header by Quarkus 【发布时间】:2020-04-18 14:44:34 【问题描述】:我需要 Quarkus 使用 Content-Type 标头 application/wasm
而不是 application/octet-stream
来提供我的 wasm 文件。我明确使用了 quarkus-undertow 扩展。
首先我尝试使用undertow-handlers.conf
来设置内容类型,如下所示:
path-suffix('.wasm') -> set("oContent-Type", "application/wasm")
对于其他标题,这没有问题,但 Content-Type 似乎被以下处理程序覆盖。
在此之后,我尝试在src/main/resources/META-INF
下添加一个 web.xml,其中包含这样的 wasm 文件的 mime 映射:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<mime-mapping>
<extension>wasm</extension>
<mime-type>application/wasm</mime-type>
</mime-mapping>
</web-app>
这种方法似乎对 Content-Type 没有任何影响。
在 Quarkus 中覆盖静态文件的 mime 类型映射的正确方法是什么?为什么web.xml配置不起作用?
更新
上面的 web.xml 方法从 Quarkus 1.1.1.Final 开始工作。
【问题讨论】:
【参考方案1】:您是否明确添加了quarkus-undertow
扩展名?因为默认情况下,它不存在并且由 Vert.x 提供服务,因此您需要添加一个 Vert.x 处理程序。
【讨论】:
是的,我认为我在 Quarkus 更新 0.24.0 中添加了 quarkus-undertow 扩展。我不确定我为什么需要它,可能是因为我使用了 oidc? 据我所知,添加到 web.xml 的 mime 映射完全被 Quarkus Undertow 扩展忽略了。你能在我们的跟踪器中打开一个问题吗?这当然是我们需要看看的。谢谢。 没错,我在github上开了一个bug:github.com/quarkusio/quarkus/issues/6399以上是关于由 Quarkus 提供的带有错误 Content-Type 标头的 Wasm 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django 在 Heroku 上接收带有图像的特定页面的服务器错误 500(由 WhiteNoise 提供静态服务)
Quarkus 是不是提供任何东西来 gzip 压缩 servlet 响应?
如何使用 Quarkus 在 RestEasy 中为 MultipartFormDataInput 提供 swagger 注释