@@ -7,16 +7,20 @@ declare variable $exist:controller external;
7
7
declare variable $exist:prefix external ;
8
8
declare variable $exist:root external ;
9
9
10
- if ($exist:path eq "" ) then
10
+ declare variable $is-get := lower-case (request:get-method ()) eq 'get' ;
11
+
12
+ if ($is-get and $exist:path eq "" ) then
11
13
<dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
12
14
<redirect url = "{request:get-uri ()} /" />
13
15
</dispatch>
14
16
15
- (: forward root path to index.xql :)
16
- else if ($exist:path eq "/" ) then
17
+ else if ($is-get and $exist:path eq "/" ) then
17
18
<dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
18
- <redirect url = "index.html" />
19
+ <forward url = "{$exist:controller} /index.html" >
20
+ <set-header name = "Content-Type" value = "text/html" />
21
+ </forward>
19
22
</dispatch>
23
+
20
24
else if ($exist:resource eq 'login' ) then
21
25
let $loggedIn := login:set-user ("org.exist.login" , (), false ())
22
26
let $user := request:get-attribute ("org.exist.login.user" )
@@ -40,56 +44,15 @@ else if ($exist:resource eq 'login') then
40
44
)
41
45
42
46
(: static HTML page for API documentation should be served directly to make sure it is always accessible :)
43
- else if ($exist:path eq "/index.html" ) then
44
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
45
- <set-header name = "Content-Type" value = "text/html" />
46
- </dispatch>
47
- else if ($exist:path eq "/data/tuttle.xml" ) then
48
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
49
- <forward url = "{$exist:controller} /data/tuttle.xml" >
50
- <set-header name = "Cache-Control" value = "max-age=31536000" />
51
- </forward>
52
- </dispatch>
53
- else if ($exist:path eq "/api.html" or ends-with ($exist:resource, "json" )) then
54
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
55
- </dispatch>
56
-
57
- (: other images are resolved against the data collection and also returned directly :)
58
- else if (matches ($exist:resource, "\.(css)$" , "s" )) then
59
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
60
- </dispatch>
47
+ else if ($is-get and $exist:path = ("/api.html" , "/api.json" )) then
48
+ <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" />
61
49
62
- else if (matches ($exist:resource, "\.(js)$" , "s" )) then
50
+ (: serve static resources :)
51
+ else if ($is-get and matches ($exist:path, "^/(css|js|images)/[^/]+\.(css|js(\.map)?|svg|jpg|png)$" )) then
63
52
<dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
64
- </dispatch>
65
-
66
- else if (matches ($exist:resource, "\.(js.map)$" , "s" )) then
67
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
68
- </dispatch>
69
-
70
- else if (matches ($exist:resource, "\.(png)$" , "s" )) then
71
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
72
- </dispatch>
73
- else if (matches ($exist:resource, "\.(svg)$" , "s" )) then
74
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
75
- </dispatch>
76
-
77
- else if (matches ($exist:resource, "\.(png|jpg|jpeg|gif|tif|tiff|txt|mei|js)$" , "s" )) then
78
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
79
- <forward url = "{$exist:controller} /data/{$exist:path} " >
80
- <set-header name = "Cache-Control" value = "max-age=31536000" />
81
- </forward>
82
- </dispatch>
83
-
84
- (: use a different Open API router, needs exist-jwt installed! :)
85
- else if (starts-with ($exist:path, '/jwt' )) then
86
- <dispatch xmlns = "http://exist.sourceforge.net/NS/exist" >
87
- <forward url = "{$exist:controller} /modules/custom-router.xq" >
88
- <set-header name = "Access-Control-Allow-Origin" value = "*" />
89
- <set-header name = "Access-Control-Allow-Credentials" value = "true" />
90
- <set-header name = "Access-Control-Allow-Methods" value = "GET, POST, DELETE, PUT, PATCH, OPTIONS" />
91
- <set-header name = "Access-Control-Allow-Headers" value = "Accept, Content-Type, Authorization, X-Auth-Token" />
92
- <set-header name = "Cache-Control" value = "no-cache" />
53
+ <forward url = "{$exist:controller} /resources/{$exist:path} " >
54
+ <set-header name = "Cache-Control" value = "max-age=2419200, must-revalidate, stale-while-revalidate=86400" />
55
+ <!-- <set-header name="Cache-Control" value="max-age=31536000"/> -->
93
56
</forward>
94
57
</dispatch>
95
58
103
66
<set-header name = "Access-Control-Allow-Headers" value = "Accept, Content-Type, Authorization, X-Start" />
104
67
<set-header name = "Cache-Control" value = "no-cache" />
105
68
</forward>
106
- </dispatch>
69
+ </dispatch>
0 commit comments