我在谷歌云应用引擎上托管了一个NodeJS应用程序。利用Vite & Vue 3和Vite的原生SSR。目前,该应用程序在谷歌子域中运行良好:.appspot.com。但是,当我尝试使用我Map到ie的域时:domain.com,它显示此错误:Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
有时它似乎是随机工作的,然而,大多数时候它会产生mime类型的错误。JavaScript和CSS文件都会发生这种情况,因为它们是包含HTML内容的文件。
类似问题:Mismatched MIME type with Google App Engine
这是我第一次张贴在这里,所以请让我知道,如果有什么我需要补充。
一些注解
- 我注意到mime类型问题只发生在索引页面(如domain.com/),而不发生在像www.example.com这样的页面domain.com/test。
- 运行生产服务器(构建和服务)没有任何问题
- 由于我使用的是Vue路由器,我注意到首先将页面加载为domain.com/test,然后再转到domain.com是有效的,所以当vue呈现索引页面时不存在mime问题。
- 我也使用
express.static
来提供静态文件,而不使用应用引擎处理程序配置。我试过从express切换到从应用引擎提供静态文件,但效果也不太好。
编辑经过一些调查,似乎没有找到这些文件。我将假设这是Google Cloud如何获取文件的问题。将继续更新。
2条答案
按热度按时间ivqmmu1c1#
我还发现今天我的应用在使用 express 下载PDF预览时停止提供正确的内容类型标头。
我得到
text/html
时,请求它,无论它是完全罚款在本地调试机器,它实际上昨天工作。可能,这是一些更新的应用程序引擎方面?wz3gfoph2#
我似乎已经解决了这个问题,这是谷歌云缓存“索引”路径的问题。
^我现在提供路线服务时使用了这段代码,这样可以确保google cloud不会缓存页面并试图获取旧的css/js文件。
参考:Google App Engine, index.html cached after deploy in express/react app