有没有办法让 BaseX 提供 HTML 文档?
Is there a way to make BaseX serve an HTML document?
有没有办法让 BaseX 的 HTTP 服务器服务于 HTML 文档,该文档作为原始资源存储在数据库中或文件系统中,具有 text/html 内容类型,因此它可以在浏览器中显示?
该文档是一个向 BaseX 发出 XHR 请求的网页。目前,我通过文件协议在浏览器上加载它。这需要让 Jetty 响应 CORS headers,否则同源策略会阻止 XHR 请求。
但是,这是一种维护负担。对 BaseX 的每次更新都需要手动获取添加 CORS headers.
的新版本的 servlet 过滤器
我想让 BaseX 本身为 HTML 文档提供服务(并成为来源),从而消除跨来源请求。
可以吗?
默认 web.xml
(位于 BaseXWeb/WEB-INF
)已经包含配置,以提供 /static/
URI 下 ./static
目录中的静态文件:
<!-- Mapping for static resources (may be restricted to a sub path) -->
<servlet>
<servlet-name>default</servlet-name>
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
您还可以查看 BaseX DBA,它也是由 BaseX 托管的 Web 应用程序的示例实现,并使用 ./static
文件夹用于一些 JavaScript文件。
当然,如果您需要从另一个目录托管的文件,您也可以更改默认值 web.xml
。另一种选择总是 store the documents in a database as RAW files,并自行为他们提供足够的内容类型。由于通过 ./static
文件夹托管文件会绕过 RestXQ 执行并让 Jetty 直接提供文件,因此与从 BaseX 数据库读取文件相比,您可能会有一些性能改进。第三种解决方案可能是在 BaseX 之前托管一个反向代理来为静态文件提供服务(通常在生产环境中这样做),但这会增加开发中的一些管理开销。
有没有办法让 BaseX 的 HTTP 服务器服务于 HTML 文档,该文档作为原始资源存储在数据库中或文件系统中,具有 text/html 内容类型,因此它可以在浏览器中显示?
该文档是一个向 BaseX 发出 XHR 请求的网页。目前,我通过文件协议在浏览器上加载它。这需要让 Jetty 响应 CORS headers,否则同源策略会阻止 XHR 请求。
但是,这是一种维护负担。对 BaseX 的每次更新都需要手动获取添加 CORS headers.
的新版本的 servlet 过滤器我想让 BaseX 本身为 HTML 文档提供服务(并成为来源),从而消除跨来源请求。
可以吗?
默认 web.xml
(位于 BaseXWeb/WEB-INF
)已经包含配置,以提供 /static/
URI 下 ./static
目录中的静态文件:
<!-- Mapping for static resources (may be restricted to a sub path) -->
<servlet>
<servlet-name>default</servlet-name>
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
您还可以查看 BaseX DBA,它也是由 BaseX 托管的 Web 应用程序的示例实现,并使用 ./static
文件夹用于一些 JavaScript文件。
当然,如果您需要从另一个目录托管的文件,您也可以更改默认值 web.xml
。另一种选择总是 store the documents in a database as RAW files,并自行为他们提供足够的内容类型。由于通过 ./static
文件夹托管文件会绕过 RestXQ 执行并让 Jetty 直接提供文件,因此与从 BaseX 数据库读取文件相比,您可能会有一些性能改进。第三种解决方案可能是在 BaseX 之前托管一个反向代理来为静态文件提供服务(通常在生产环境中这样做),但这会增加开发中的一些管理开销。