我正在与"生产"应用程序相同的域上开发一个web应用程序——它只是顶级网站的子目录。类似于:www.site.com/v3/...
我见过几个人试图使用CodeIgniter获得相对路径——过去我只是在"v3"网站的每个HTML图像声明中插入base_url()
,但我最近买了一个HTML网站模板,在数百个HTML标签中嵌入<?php base_url() ?>
似乎效率很低。
希望有人能帮上忙——我希望能够直接将开发代码(又名"/v3/")转换为使用,而无需搜索和替换所有HTML引用。
这正是$config['base_url']
在application/config/config.php
中的用途。如果您将其设置为http://site.com/v3/
,则无论您使用base_url()
或site_url()
,它都会反映在您的网站上
但是,我应该注意,在整个站点中对每个src
、href
等使用base_url()
或site_url()
是不好的做法。你正在疯狂地调用PHP解释器。
一个更好的解决方案是使用<head>
中的<base>
标记<base href="<?= site_url();?>">
告诉HTML文档您的基础。
你有了。你使用site_url()
一次,从现在起你就可以使用:
CCD_ 17和CCD_ 18
总的来说,作为一个总体原则,当你发现自己在复制自己时。。。找到消除重复的方法。保持干燥。
感谢大家的帮助。
在阅读了标签的潜在问题后,我重新思考了我的方法——我创建了一个主站点的子域(类似dev.mysite.com)。这样,我就可以像在生产版本中一样处理代码,只需在CI的config.php中更改基本URL。
就目前而言,这似乎是最简单的解决方案,因为为每个需要相对路径的HTML标记调用php预处理器是令人疲惫且效率低下的,并且使用标记可能会导致不一致的结果。