CodeIgniter3中PHP、JS、JSON文件的正确路径定义方案咨询
解决CodeIgniter 3中多文件路径统一问题的方法
一、HTML/PHP页面中的路径处理
直接用CodeIgniter内置的base_url()函数生成绝对路径,先确保配置正确:
- 打开
application/config/config.php,设置正确的根URL:
$config['base_url'] = 'https://myadmin.com/';
- 在HTML里引用资源时拼接路径:
<script src="<?php echo base_url('assets/js/pages/api-key.init.js'); ?>"></script>
这样会直接生成https://myadmin.com/assets/js/pages/api-key.init.js,彻底避免路径错误。
二、JS文件中的路径处理
方法1:定义全局基础URL变量
在页面<head>或所有JS脚本之前,插入全局变量定义:
<script> // 把PHP的根路径传递给JS全局变量 var baseURL = "<?php echo base_url(); ?>"; </script>
之后在api-key.init.js里用这个变量拼接路径:
// 原路径:assets/json/api-key-list.json var jsonUrl = baseURL + 'assets/json/api-key-list.json'; // 发起请求 fetch(jsonUrl) .then(response => response.json()) .then(data => { // 处理数据逻辑 });
方法2:用<base>标签统一根路径
在页面<head>中添加<base>标签,指定所有相对路径的根:
<base href="<?php echo base_url(); ?>">
这样页面内所有相对路径(包括JS里的assets/json/api-key-list.json)都会自动以https://myadmin.com/为根,完全不需要修改JS代码。
注意:
<base>会影响所有相对路径,包括锚点链接(比如<a href="#top">会变成https://myadmin.com/#top),如果有这类锚点,直接写#top即可,不要加相对路径前缀。
三、JSON文件中的图片路径处理
- 如果用了
<base>标签,JSON里的assets/img/avatar-1.jpg会自动解析为https://myadmin.com/assets/img/avatar-1.jpg,无需修改JSON内容。 - 如果没使用
<base>,可以在JS获取JSON数据后动态拼接路径:
fetch(baseURL + 'assets/json/api-key-list.json') .then(response => response.json()) .then(data => { // 遍历数据修改图片路径 data.forEach(item => { item.imgUrl = baseURL + item.imgUrl; // 假设JSON中图片字段为imgUrl }); // 后续渲染逻辑 });
内容的提问来源于stack exchange,提问作者Marcin
相关产品推荐
相关产品推荐

