Nodejs 如何解决:"可方便修改的一级路径"这个需求
Nodejs 如何解决:“可方便修改的一级路径"这个需求
我们的后端是 Java。Java 的 web 程序有一个一级上下文路径,每个应用都不同,比如:
Http://xx.xx.xx:/上下文路径 /user/1
为了和后台一致,来区分应用的上下文,我们的前端资源虽然和后端分离,但是访问的时候,也是带有同样的上下文路径的:
Http://xx.xx.xx:/上下文路径 /html/xxx.html
Http://xx.xx.xx:/上下文路径 /img/xxx.png
Http://xx.xx.xx:/上下文路径 /js/xxx.js
Http://xx.xx.xx:/上下文路径 /css/xxx.css
我们在 html 页面里,无论是链接资源,还是访问接口,都是绝对路径,比如:
<a href=”/上下文路径 /js/xxx.html">xxxx</a>
但是现在比较坑爹的是,这个上下文路径,在实际部署的时候,可能会因为客户要求,而发生变化。
Java 后端的这个上下文路径非常好改,然而到了前端这块就出了大麻烦,如果这个上下文路径是硬编码写在页面上,那改起来就致命了。所以这个问题该怎么办呢,该如何搞出在部署时可以方便修改的一级路径来?
使用相对路径啊,随便放什么目录都可以
也许可以全局变量定义一个 window.$APP.asset_prefix,部署时替换为需要的路径。
如果是有规律的客户要求,就加参数变量,如果随机指定这种,还是硬编码写进去
为何你的帖子点进来是黑色背景。。
全局变量呗。
写一个脚本,每次部署完以后运行一下扫描指定目录中的页面文件,把旧的路径替换成新的
node.js 节点的风格就这样…
V2 在一些节点下有单独的 CSS 样式…游戏.美食之类…
Java 传给 JS ?
哇靠,这个节点的主题不错
url re-write,把「上下文路径」作为参数
相对路径在开发中很容易出错,我现在是能不用,就不想用上下文路径
这背景看的脑壳痛
用配置解决
想过这个方案,然而还是无法接受,太丑陋了,引入了中间环节,更容易出问题
你如何用配置解决
当然用了,但是你反向代理解决不了这个问题
原来如此,第一次进 Node 节点。。
web 程序相对路径是最方便和安全的,要不你就程序安装时或者每次加载时自动生成这个变量咯,如果你不嫌麻烦的话。
可以考虑用 base 标签看看?
html 里的路径通过后端模板生成呗。还有种笨办法就是前端构建时生成,路径变化了再生成发布一次
没有用 webpack 吗…定义 publicPath 就好了啊
然后源代码里用相对路径去引用对应资源
在Node.js中解决“可方便修改的一级路径”这一需求,通常涉及到路由的动态配置。可以通过配置一个中心化的路由管理器,允许在运行时动态地添加、修改或删除路由。
以下是一个简单的示例,展示如何动态管理一级路径的路由:
const express = require('express');
const app = express();
// 创建一个路由映射对象
const routes = {};
// 动态添加路由的函数
function addRoute(path, handler) {
if (!routes[path]) {
routes[path] = express.Router();
app.use(path, routes[path]);
}
routes[path].get('/', handler);
}
// 示例处理器函数
function exampleHandler(req, res) {
res.send('Hello from ' + req.originalUrl);
}
// 添加一个一级路径路由
addRoute('/new-path', exampleHandler);
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
// 动态修改路由(例如,替换现有路径的处理器)
routes['/new-path'].get('/', (req, res) => {
res.send('This is the updated response for /new-path');
});
在这个示例中,addRoute
函数允许你动态地添加一级路径路由。同时,通过直接修改 routes
对象中的路由处理器,可以实现路由的动态修改。这种方法使得在运行时管理一级路径路由变得简单且灵活。