文章
· 十月 4, 2022 阅读大约需 3 分钟

第六章 CSP 架构 - 静态文件

第六章 CSP 架构 - 静态文件

静态文件

数据库服务器为所有 CSP 提供服务。 数据库服务器还可以通过 CSP 网关为 Web 应用程序提供任何类型的静态文件。在标准 Web 应用程序中,Web 服务器通常提供静态内容。要在 Caché 上运行 Zen 应用程序,必须配置 Web 服务器以允许服务器通过 CSP 网关提供所有静态文件。

注意:要运行基于 Zen 的应用程序,请启用“服务文件”选项并配置 Web 服务器以允许 Caché 服务器提供静态文件。然后 Zen 框架将能够提供依赖图像和 JavaScript 帮助文档。

指示字符编码

CSP 引擎通过流服务器以与主流 Web 服务器一致的方式处理静态文件,以确定 JavaScript 文件的字符编码。

现代惯例是将所有 JavaScript 文件标记为 application/javascriptContent-Type,并且确保页面上使用的所有 JavaScript 文件都是这种情况。

以这种方式标记的 JavaScript 文件:

  • 如果文件包含 BOM(字节顺序标记),浏览器会自动检测到这一点并使用正确的字符集来读取它。
  • 如果该文件不包含 BOM,则浏览器假定该文件是 UTF-8

如果需要覆盖此行为以指定 JavaScript 文件的字符集,请将全局 ^%SYS("CSP","MimeFileClassify","JS") 设置为列表值 $listbuild(contenttype, binary, charset)。例如,

SET ^%SYS("CSP", "MimeFileClassify", "JS") = $listbuild("text/javascript", 0 ,"ISO-8859-1") 

这将设置较旧的内容类型并使用 ISO-8859-1 字符集。此外,如果 转换表被定义为非空字符串或全局节点 ^%SYS("CSP","DefaultFileCharset") 设置为空值,则 将为所有 JavaScript 使用此字符集和其他文本文件。默认情况下,这些全局节点均未设置。

启用服务文件选项

CSP 应用程序的“服务文件”选项打开(始终)或关闭(否),或者 CSP 网关可以缓存 Web 服务器上的静态文件(始终和缓存)。 Always and cached 设置提高了效率,因为系统可以提供缓存的静态页面而无需返回到 Caché 服务器)。要运行 Zen 应用程序,必须使用始终或始终和缓存设置启用服务文件选项。

配置 Web 服务器以允许缓存服务器提供静态文件

配置 Web 服务器以允许 Caché 服务器提供静态文件。

默认情况下,提供的安装脚本不会查找或配置外部 Web 服务器。如果运行自定义安装,可以选择该选项来配置任何以前安装的 IIS 或 Apache Web 服务器以启用 CSP 支持。安装脚本创建 /csp 虚拟目录,并为要由网关处理的 .csp.cls.zen.cxw 扩展创建映射。这足以使 CSP 通过该 Web 服务器正常运行。它不支持服务文件功能。为此,必须手动配置 ApacheIIS 以映射要通过网关处理的特定文件扩展名。这是设计使然,因为通过这种机制将数据库服务器暴露在外是一种安全风险,不应该以无形的方式进行。

从 Web 服务器提供静态文件

如果愿意,仍然可以使用从 Web 服务器提供静态页面的传统配置,例如,如果已经以这种方式设置了 Web应用程序。 (在这种情况下,Static Files 选项的设置无关紧要。)当一个公共 Web 服务器为两个不同版本的 提供服务时,这消除了争用,每个版本都需要某些静态文件的不同版本(例如,hyperevent broker 组件)。

如果您已将 Web 服务器本身配置为提供静态文件,请确保静态内容存在于每台 Web 服务器上。

讨论 (0)1
登录或注册以继续