2016-11-05 7 views
1

BaseXのHTTPサーバーが、rawリソースまたはファイルシステム内のtext/htmlコンテンツタイプのdbに格納されたHTMLドキュメントを提供するようにする方法はありますか?BaseXをHTML文書として提供する方法はありますか?

このドキュメントは、XHR要求をBaseXに送信するWebページです。現在、ファイルプロトコルを使用してブラウザにロードしています。これにより、JettyがCORSヘッダーで応答する必要があります。そうでなければ、同じ発信元ポリシーがXHR要求をブロックします。

しかし、これは保守負担です。 BaseXを更新するたびに、CORSヘッダーを追加するサーブレット・フィルターの新しいバージョンを手動で取得する必要があります。

私は、BaseX自体がHTMLドキュメントを提供して(元になる)ようにしたいので、クロスオリジン要求を排除したいと思います。

可能ですか?あなたはまた、としても機能しBaseX DBAを見て、持つことができ

<!-- 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> 

:すでに/static/ URIの下./staticディレクトリから静的ファイルを提供する構成を含む(BaseXWeb/WEB-INFにあります)

答えて

1

デフォルトweb.xml BaseXでホストされているWebアプリケーションの実装例で、一部のJavaScriptファイルには./staticフォルダを使用しています。

もちろん、別のディレクトリからホストされているファイルが必要な場合は、デフォルトのweb.xmlを変更することもできます。代替方法は常にstore the documents in a database as RAW filesになり、適切なコンテンツタイプを自分で提供してください。 ./staticフォルダのファイルをホストするとRestXQの実行がバイパスされ、Jettyはファイルを直接提供するため、BaseXデータベースからファイルを読み取る場合に比べてパフォーマンスが向上する場合があります。 3番目の解決方法は、静的ファイルを提供するためにBaseXの前にリバースプロキシをホストすることです(これは通常はプロダクション用に実行されます)。これにより開発に管理上のオーバーヘッドが追加されます。

+0

これは完璧です。私はそれらの厄介なSOPブロックにさえ言っています。ありがとうございました! – ARX

関連する問題