我正在我的localhost中的CodeIgniter网页上工作,但这个网页也在实时服务器中。
它为所有链接使用base_url()
。
例如:
<link rel="stylesheet" href="<?= base_url() ?>assets/style.css">
<script src="<?= base_url() ?>assets/jquery-ui.min.js"></script>
...
<a href="<?= base_url() ?>show/edit/other">
当我点击localhost中的链接时,它会提供mi实时服务器地址,因此我无法在localhost中执行任何操作。
有人可以帮帮我吗?
答案 0 :(得分:2)
您可以将以下代码设置为config.php,如果您在localhost中它将获取相关URL,然后它将使用localhost,如果您在实时服务器中,则它将采用实时URL。
$root=(isset($_SERVER['HTTPS']) ? "https://" : "http://").$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;
//$config['base_url'] = 'http://localhost/abc/';
答案 1 :(得分:2)
您可以在application/config
内创建两个文件夹,一个用于生产(实时服务器),另一个用于开发(localhost)
然后复制主application/config
文件夹中的所有文件,并将其粘贴到development
和production
文件夹中。
<强>应用/配置/开发/ config.php中强>
$config['base_url'] = 'http://localhost';
<强>应用/配置/生产/ config.php中强>
$config['base_url'] = 'http://example.com';
根据index.php
中的ENV常量,它将从生产或开发文件夹中加载设置。因此,如果ENV =='development',application/config/development
中的设置将被使用。
如果您想要资产的相对路径,请将其添加到html的HEAD
<base href="<?php echo base_url();?>" />
然后你可以像这样引用你的资产
<link rel="stylesheet" href="assets/styles.css" />
答案 2 :(得分:0)
无需触摸config.php。遵循这个解决方案,即使在通过htaccsss删除index.php之后,它也可以在本地和现场工作
用于添加文件(css,images,js等),请使用如下
<?php echo base_url('assets/js/test.js');?>
以及其余的东西使用以下
<?php echo site_url('controller/metho_name');?>
它将在实时或本地服务器中自动处理并保持config.php不变。
由于