2016-11-05 3 views
1

BaseX의 HTTP 서버가 원시 리소스 또는 파일 시스템에 text/html 콘텐츠 유형으로 저장된 HTML 문서를 제공하도록 만들 수 있습니까? 브라우저에 표시 될 수 있습니까?BaseX를 HTML 문서로 제공하는 방법이 있습니까?

이 문서는 BaseX에 XHR 요청을하는 웹 페이지입니다. 현재, 파일 프로토콜을 통해 브라우저에로드합니다. 이를 위해서는 부두가 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에서 호스팅하는 웹 응용 프로그램의 예제 구현이며 일부 JavaScript 파일에 ./static 폴더를 사용합니다.

물론 다른 디렉토리에서 파일을 호스팅해야하는 경우 기본값 web.xml을 변경할 수도 있습니다. 대안은 언제나 store the documents in a database as RAW files이며 적절한 콘텐츠 유형으로 직접 제공 할 수 있습니다. ./static 폴더를 통해 파일을 호스팅하면 RestXQ 실행을 건너 뛰고 Jetty에서 파일을 직접 제공하므로 BaseX 데이터베이스에서 파일을 읽는 것보다 성능이 약간 향상 될 수 있습니다. 세 번째 솔루션은 정적 파일을 제공하기 위해 BaseX 앞에 역방향 프록시를 호스팅하는 것입니다 (대개 프로덕션을 위해 수행됩니다). 그러나 개발시 관리 오버 헤드가 추가됩니다.

+0

이것은 완벽합니다. 그 성가신 SOP 블록에 작별 인사를하고 있습니다. 고맙습니다! – ARX

관련 문제