You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript文件中使用base_url或PHP变量?

解决JavaScript中无法使用PHP变量base_url加载图片的问题

核心问题是独立的.js文件不会被PHP服务器解析,你写在JS里的<?php echo base_url(); ?>会被浏览器当成普通字符串,导致图片路径错误,自然加载失败。下面是几种可行的解决方法:

方法1:在HTML中定义全局变量(推荐)

在页面的<head>标签里,先通过PHP输出base_url到全局JS变量,再让JS文件引用这个变量:

<!-- 在PHP渲染的HTML文件中添加,确保这段代码在你的JS文件之前加载 -->
<script>
var baseUrl = '<?php echo base_url(); ?>';
</script>
<script src="你的js文件路径.js"></script>

然后在JS文件中修改代码:

$('#site-logo').find('img').attr({
    src: baseUrl + 'assets/images/logo/logo_dark@2x.png',
    width: '151',
    height: '45'
});

方法2:将JS代码嵌入PHP视图文件

如果你的JS代码量不大,可以直接把这段JS写在.php后缀的视图文件里(比如页面的<script>标签中),这样PHP会直接解析里面的base_url():

<script>
$('#site-logo').find('img').attr({
    src:'<?php echo base_url(); ?>assets/images/logo/logo_dark@2x.png',
    width:'151',
    height:'45'
});
</script>

这种方式适合小片段JS,但不利于代码分离维护。

方法3:通过HTML的data属性传递变量

在页面的根元素(比如<body>)上添加data属性存储base_url,再用JS读取:

<!-- 在HTML中添加 -->
<body data-base-url="<?php echo base_url(); ?>">

然后在JS文件中获取并使用:

var baseUrl = $('body').data('base-url');
$('#site-logo').find('img').attr({
    src: baseUrl + 'assets/images/logo/logo_dark@2x.png',
    width: '151',
    height: '45'
});

内容的提问来源于stack exchange,提问作者Ritika mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:20:42