MODx中是否有自动生成相对路径的方法?解决多页面路径适配问题
MODx 自动处理静态资源路径的方案
你可以用以下几种MODx内置方式解决多层嵌套页面的路径问题,不用手动写一堆../:
使用系统变量
[[++assets_url]]
如果你的js、css文件放在MODx默认的assets目录下(比如assets/css/、assets/js/),直接用这个变量拼接路径即可。示例:<link rel="stylesheet" href="[[++assets_url]]css/myfile.css"> <script src="[[++assets_url]]js/myfile.js"></script>这个变量会自动指向网站配置的assets目录路径,不管页面嵌套多少层,路径都能正确解析。
自定义系统变量
如果你的静态资源不在assets目录,比如网站根目录下单独的css/、js/文件夹,可以自己添加系统变量:- 进入MODx后台的「系统设置」,新增两个变量,比如
css_url和js_url - 分别设置变量值为
/css/和/js/(根据你的实际目录调整) - 在页面中直接使用:
<link rel="stylesheet" href="[[++css_url]]myfile.css"> <script src="[[++js_url]]myfile.js"></script>- 进入MODx后台的「系统设置」,新增两个变量,比如
使用根路径变量
[[++base_url]]
直接基于网站根路径拼接,适合资源放在根目录下的情况:<link rel="stylesheet" href="[[++base_url]]css/myfile.css"> <script src="[[++base_url]]js/myfile.js"></script>[[++base_url]]会自动调用网站的根路径配置,等同于手动写/开头的绝对路径,但更灵活(比如网站部署在子目录时也能自动适配)。
这些方式都是基于网站根路径的绝对路径逻辑,完全不用考虑页面的嵌套层级,MODx会自动帮你生成正确的资源地址。
内容的提问来源于stack exchange,提问作者Serj
相关产品推荐
相关产品推荐

