Correction: I meant to say “Yes, I was using relative paths ….” Apologies.
From: Murray, Gregory <gregory.mur...@ptsem.edu> Date: Monday, January 29, 2024 at 3:35 PM To: Imsieke, Gerrit, le-tex <gerrit.imsi...@le-tex.de>, basex-talk@mailman.uni-konstanz.de <basex-talk@mailman.uni-konstanz.de> Subject: Re: [basex-talk] RESTXQ oddity? Hi Gerrit, I’m subscribed to the list, but it appears that I have been receiving only some messages posted to the list, not all – probably caused by an overzealous security mechanism on the email server here at my employer. I’ll look into it. Thanks very much for your suggestion. I see what you mean about relative vs. absolute paths. Yes, I was using absolute paths such as href="static/css/theocom.css" but now I see that using the absolute path such as href="/theocom/static/css/theocom.css" works well and allows me to use the same code for HTML <head> across multiple pages. Many thanks, Greg From: Imsieke, Gerrit, le-tex <gerrit.imsi...@le-tex.de> Date: Monday, January 29, 2024 at 2:36 PM To: Murray, Gregory <gregory.mur...@ptsem.edu>, basex-talk@mailman.uni-konstanz.de <basex-talk@mailman.uni-konstanz.de> Subject: Re: [basex-talk] RESTXQ oddity? [You don't often get email from gerrit.imsi...@le-tex.de. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] Hi Murray, I only replied to the list, not to you personally, on the assumption that you are subscribed to the list. https://mailman.uni-konstanz.de/pipermail/basex-talk/2024-January/018275.html Gerrit On 29.01.2024 19:39, Murray, Gregory wrote: > Hi Andy, > > I didn’t receive a reply from anyone named Gerrit, but I will watch for it. > Meanwhile, thank you for your suggestion. I made the change you indicated, > but unfortunately I’m still seeing the same behavior. > > Thanks, > > Greg > > *From: *Andy Bunce <bunce.a...@gmail.com> > *Date: *Monday, January 29, 2024 at 11:51 AM > *To: *Murray, Gregory <gregory.mur...@ptsem.edu> > *Cc: *basex-talk@mailman.uni-konstanz.de <basex-talk@mailman.uni-konstanz.de> > *Subject: *Re: [basex-talk] RESTXQ oddity? > > > > You don't often get email from bunce.a...@gmail.com. Learn why this is > important <https://aka.ms/LearnAboutSenderIdentification> > > > > In addition to Gerrit's comments... > > This line jumped out as problematic to me. > > %rest:path('theocom/static/{$dir=.+}/{$file=.+}') > > The pattern =.+ matches the rest of the path. You only need this once at the > end of the path. > > Maybe just: > > %rest:path('theocom/static/{$dir}/{$file=.+}') > > /Andy > > On Mon, 29 Jan 2024 at 14:49, Murray, Gregory <gregory.mur...@ptsem.edu > <mailto:gregory.mur...@ptsem.edu>> wrote: > > Hello, > > I’m trying to build my first BaseX web application. I’ve got a RESTXQ > function for returning static files to the browser, and other RESTXQ > functions corresponding to URLs in the web application. The function for > static files is based on the one in DBA: > > (:~ Returns the specified static file to the browser as binary data. :) > > declare > > %rest:GET > > %rest:path('theocom/static/{$dir=.+}/{$file=.+}') > > function c:file($dir as xs:string, $file as xs:string) > > { > > let $path := file:base-dir() || 'static/' || $dir || '/' || $file > > return > > ( > > web:response-header( > > map { 'media-type': web:content-type($path) }, > > map { 'Content-Length': file:size($path) } > > ), > > file:read-binary($path) > > ) > > }; > > Another function returns the home page for the web application. That page > works just fine. The HTML document gets returned to the browser, and the > static CSS and image files are sent to the browser successfully. > > (:~ Returns the home page for the entire web application. :) > > declare > > %rest:GET > > %rest:path('theocom') > > %output:method('html') > > %output:html-version('5') > > function c:home() > > { > > let $params := c:http-params() > > return > > ( > > c:extra-response-headers(), > > home:get-home-page($params) > > ) > > }; > > I have another RESTXQ function that corresponds to a URL that goes deeper > into the web application: > > (:~ Returns a page listing contributors (libraries whose content we've > imported), for browsing. :) > declare > %rest:GET > %rest:path('theocom/contributors/{$alpha=[a-z]}') > %output:method('html') > %output:html-version('5') > function /c:browse-contributors/($alpha as xs:string) > { > let $params := > /map:merge/( > ( > /map:entry/("browse", "contributor"), > /map:entry/("alpha", /upper-case/($alpha)), > /c:http-params/() > ) > ) > return > ( > /c:extra-response-headers/(), > /browse:contributors/($params) > ) > }; > > The problem I’m having is that on this page, the browser returns 404 for > the static files, even though the code for the HTML <head> where the CSS > files are linked is identical to the home page. Am I doing something wrong, > or is the BaseX RESTXQ implementation doing something unexpected? > > Thanks, > > Greg > > Gregory Murray > > Director of Digital Initiatives > > Wright Library > > Princeton Theological Seminary > -- Gerrit Imsieke Geschäftsführer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsi...@le-tex.de, https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.le-tex.de%2F&data=05%7C02%7Cgregory.murray%40ptsem.edu%7C6a421401b2d8412ca68608dc2101950f%7C6fb1672fa768436d88c81585060baf28%7C0%7C0%7C638421537900620474%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=QR%2F4IzaqSrAV1QjRJaxwSvVsdbP2s43L5cC4bxzAVsk%3D&reserved=0<http://www.le-tex.de/> Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 Geschäftsführer / Managing Directors: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt