I'm using Express and EJS to serve pages. I'm using Bootstrap for the UI, specifically the navbar.
I'd like to add an 'active'
class to the current page's <li>
item, to show the current page. However, I cannot find how to get the URL from within the EJS code rendering the page.
I found 2 workarounds: I used included passing the page name as a parameter in the route's res.render('myview', {pageName: 'myView'});
- which is not scalable and may cause issues.
The other way, was to use jQuery on the client side to add the 'active'
class to the item upon page ready - but that means including this piece of script on every view + some useless client side cycles.
Having used several server side rendering languages before, I feel like I'm missing something. And the online EJS documentation is not that great.
Is there any way to find my current path/url from the EJS code?
Update:
I took the top 2 suggestions, and passed the view name as a parameter to the view. I really liked @tandrewnichols' idea to calculate it automatically, but ultimately, it was easier to just copy-paste strings :)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…