I'm working on a website with a large number of pages, and each one has this in it:
<xsl:include href="team-menu.xsl" />
This xsl file is stored in the root directory.
Essentially including my "team menu" on each page. My problem is when I include this on nested pages, e.g. "/teammembers/smith.xsl", the links in the menu are broken because they refer to pages that aren't in the same directory as the page i'm viewing.
This is probably really easy, but I just don't know how to fix it. Is there a way to tell the XSL the root directory and/or set some sort of global directory? Thanks for your help!
If I understand your question correctly you could just use absolute links, instead of relative ones.
I.e.
/index.xml
instead ofindex.xml
.You can use XSL parameters to pass the base directory. All processors come with a mechanism for passing these (eg
xsltproc --stringparam basedir style
). Within your stylesheet, you should be able to use something like the following to consume the parameter: