在javascript nodejs中的所有页面中更改href网址 [英] change href url in all pages in javascript nodejs
本文介绍了在javascript nodejs中的所有页面中更改href网址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我实现了具有多种语言下拉菜单的bootstrap navbar,当我选择语言时,它将翻译页面,如何更改其他页面的URL和按钮文本
当我选择french
时,将所有url更改为/fr/about
和/fr/contact
.
如何使用javascript
I have implemented bootstrap navbar having dropdown with multiple languages, when I select the language, it will translate the page, how to change url for other pages and button text
when i select french
, change all url to /fr/about
and /fr/contact
.
How to do using javascript
//app.js
var express = require('express');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs')
var languageRouter = require('./routes/language');
app.use('/:lan', languageRouter);
app.use('/:lan/contact', contactusRouter);
app.use('/:lan/aboutus', aboutusRouter);
//language.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.render('index.ejs'});
});
module.exports = router;
//aboutus.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.render('aboutus.ejs');
});
module.exports = router;
//header.ejs
<body>
<nav>
<div class="dropdown">
<ul class="navbar-nav mr-auto">
<li class="nav-item dropdown mr-4">
<a class="nav-link dropdown-toggle" href="/en/about" id="navbarDropdownProvider" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
about us
</a>
</li>
<li class="nav-item dropdown mr-4">
<a class="nav-link dropdown-toggle" href="/en/contact" id="navbarDropdownProvider" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
contact us
</a>
</li>
</ul>
<button id="language" class="btn btn-warning dropdown-toggle" type="button" id="dropdownMenu2"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" onclick="clickButton()">
English
</button>
<div id="languagelist" class="dropdown-menu" aria-labelledby="dropdownMenu2" onclick="clickItem(); return false">
<a class="dropdown-item" href="/en">English</a>
<a class="dropdown-item" href="/fr">French</a>
</div>
</div>
</nav>
</body>
//index.ejs
<%- include header.ejs %>
<h1>Welcome to My Site</h1>
推荐答案
应该可以使用express嵌套"路由. (作为示例,请查看此答案 Rest与Express.js嵌套路由器)
It should be possible to "nest" routes with express. (As an example checkout this answer Rest with Express.js nested router)
对于您而言,我认为那意味着您的旧代码
In your case, I think that would mean that your old code
var languageRouter = require('./routes/language');
app.use('/:lan', languageRouter);
app.use('/:lan/contact', contactusRouter);
app.use('/:lan/aboutus', aboutusRouter);
变成这样的东西:
var languageRouter = require('./routes/language');
app.use('/:lan', languageRouter);
languageRouter.use('/:lan/contact', contactusRouter);
languageRouter.use('/:lan/aboutus', aboutusRouter);
这篇关于在javascript nodejs中的所有页面中更改href网址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文