apache - MIME 类型与 TYPO3 压缩的 CSS 和 JS 资源冲突
问题描述
我对 TYPO3 比较陌生。最近我注意到我的安装中有一些非常奇怪的行为:目录中的一些 CSS 文件typo3temp/assets/compressed
得到了 MIME 类型text/html
而不是预期的text/css
. 因此,我的浏览器从网络服务器收到了这些资源的 403 Forbidden 状态代码。这导致后端的某些部分没有样式显示。
我尝试清除所有缓存并删除typo3temp/assets/compressed
目录,但是现在那里的所有东西(CSS 和 JS)都使用 MIME-type 提供text/html
。在没有 JavaScript 的情况下获取后端意味着我现在基本上被锁定在后端之外。但是,我仍然可以使用安装工具。
您有任何想法如何发生这种情况以及如何解决它?
我的设置的一些细节:
- TYPO3 v10.4.13(最近从 10.4.9 更新)
- Apache Web 服务器(我无权访问其配置,必须依赖 .htaccess 文件)
解决方案
我建议设置
TYPO3_CONF_VARS/FE/compressionLevel=0
TYPO3_CONF_VARS/BE/compressionLevel=0
为了不出现这些问题。问题是这种压缩会创建压缩文件,但依赖于网络服务器配置以便将它们作为text/css
而不是应用默认网络服务器的传输压缩来交付(或者它们最终可能会被双重压缩,您甚至可能不会轻易注意到 - 某些浏览器可以处理这个,其他人没有)。
这是一种微优化,在我们因为处理开销而避免使用 https:// 时听起来很有用......
这是一些文档(我认为第一个声明已经过时):https ://docs.typo3.org/m/typo3/reference-skinning/master/en-us/BackendCssApi/CssCompression/Index.html
推荐阅读
- knative - 将并发限制设置为 1 时,单个请求旋转 2 个 Knative 实例
- reactjs - 将 react-beautiful-dnd 用于 antd 树
- typescript - TypeScript - 如何使用动态键键入接口对象
- angular - 如何在 ngx-treeview angular js 中为每个元素添加 id
- angular - MatMenu 悬停在打开的 MatMenu 下方显示 Button
- python - 如何在 Flask 中使用输入框设置变量
- svn - Tortoise SVN - 无法搁置新目录:“无法搁置一个或多个路径。”
- python - Sklearn 线性回归似乎不适合数据
- python - 在python中计算信号功率的有效方法
- javascript - 将图像 ID 映射到 Api 对象 ID