第六章 CSP 架构 - 静态文件
静态文件
数据库服务器为所有 CSP
提供服务。 数据库服务器还可以通过 CSP
网关为 Web
应用程序提供任何类型的静态文件。在标准 Web
应用程序中,Web
服务器通常提供静态内容。要在 Caché
上运行 Zen
应用程序,必须配置 Web
服务器以允许服务器通过 CSP
网关提供所有静态文件。
注意:要运行基于 Zen
的应用程序,请启用“服务文件”选项并配置 Web
服务器以允许 Caché
服务器提供静态文件。然后 Zen
框架将能够提供依赖图像和 JavaScript
帮助文档。
指示字符编码
CSP
引擎通过流服务器以与主流 Web
服务器一致的方式处理静态文件,以确定 JavaScript
文件的字符编码。
现代惯例是将所有 JavaScript
文件标记为 application/javascript
的 Content-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
服务器正常运行。它不支持服务文件功能。为此,必须手动配置 Apache
或 IIS
以映射要通过网关处理的特定文件扩展名。这是设计使然,因为通过这种机制将数据库服务器暴露在外是一种安全风险,不应该以无形的方式进行。
从 Web 服务器提供静态文件
如果愿意,仍然可以使用从 Web
服务器提供静态页面的传统配置,例如,如果已经以这种方式设置了 Web
应用程序。 (在这种情况下,Static Files
选项的设置无关紧要。)当一个公共 Web
服务器为两个不同版本的 提供服务时,这消除了争用,每个版本都需要某些静态文件的不同版本(例如,hyperevent broker
组件)。
如果您已将 Web
服务器本身配置为提供静态文件,请确保静态内容存在于每台 Web
服务器上。
网友评论