本地主机中的 CodeIgniter base_url(), link 让我可以使用实时服务器
CodeIgniter base_url(), link in localhost gives me to live server
我正在本地主机的 CodeIgniter 中处理网页,但此网页也在实时服务器中。
所有 link 都使用 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 中单击 link 时,它会提供 mi 实时服务器地址,因此我无法在 localhost 中执行任何操作。
有人可以帮我吗?
您可以将下面的代码设置为 config.php 并且它将占用相关 url 如果您在 localhost 中那么它将占用 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/';
您可以在 application/config
中创建两个文件夹,一个用于生产(实时服务器),一个用于开发(本地主机)
- 发展=> application/config/development
- 生产 => application/config/production
然后复制主 application/config
文件夹中的任何文件并将其粘贴到 development
和 production
文件夹中。
application/config/development/config.php
$config['base_url'] = 'http://localhost';
application/config/production/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" />
无需触摸config.php。按照这个解决方案,即使在通过 htaccsss
删除 index.php 之后,它也可以在本地和现场工作
对于添加文件(css、图像、js 等),请按如下方式使用
<?php echo base_url('assets/js/test.js');?>
其余部分使用以下内容
<?php echo site_url('controller/metho_name');?>
它将在实时或本地服务器中自动处理并保持您的 config.php 原样。
谢谢
我正在本地主机的 CodeIgniter 中处理网页,但此网页也在实时服务器中。
所有 link 都使用 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 中单击 link 时,它会提供 mi 实时服务器地址,因此我无法在 localhost 中执行任何操作。
有人可以帮我吗?
您可以将下面的代码设置为 config.php 并且它将占用相关 url 如果您在 localhost 中那么它将占用 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/';
您可以在 application/config
中创建两个文件夹,一个用于生产(实时服务器),一个用于开发(本地主机)
- 发展=> application/config/development
- 生产 => application/config/production
然后复制主 application/config
文件夹中的任何文件并将其粘贴到 development
和 production
文件夹中。
application/config/development/config.php
$config['base_url'] = 'http://localhost';
application/config/production/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" />
无需触摸config.php。按照这个解决方案,即使在通过 htaccsss
删除 index.php 之后,它也可以在本地和现场工作对于添加文件(css、图像、js 等),请按如下方式使用
<?php echo base_url('assets/js/test.js');?>
其余部分使用以下内容
<?php echo site_url('controller/metho_name');?>
它将在实时或本地服务器中自动处理并保持您的 config.php 原样。
谢谢