$config['base_url'] = 'localhost/project';
<link href="<?= base_url(); ?>/css/bootstrap.min.css" rel="stylesheet">
会产生错误,因为双重'/'而不会在我的视图中加载我的CSS。
这是浏览器上视图的页面源。
<link href="localhost/project//css/bootstrap.min.css" rel="stylesheet">
并且css不会加载。当我尝试页面源并按照链接时,会导致404错误。
我感到困惑的是,当我在配置文件上的base_url上添加协议时。
<link href="http://localhost/project//css/bootstrap.min.css" rel="stylesheet">
由于未知的原因,上面的url似乎指向css,它加载到我的视图上,即使它在'project'和'css'之间的url上仍然有两个'/'。此外,即使我删除视图上'css'之前的'/',它也会加载,只要我在我的基本网址上添加一个协议,即使没有协议,即使没有双'/'它仍然赢了'加载css。
<link href="http://localhost/project/css/bootstrap.min.css" rel="stylesheet">
我也有一些问题,
在我上面的配置基本网址中,我从不在最后添加'/',所以为什么在我的视图中使用函数base_url时会添加'/'。为什么会这样?
我的第二个问题是,我的网址上有'/'。
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="/css/shop-homepage.css" rel="stylesheet">
在我的浏览器上点击查看页面源上的网址时的第一个链接,它仍然在网址中有控制器。
http://localhost/project/Pages/css/bootstrap.min.css
如果我在'css'之前添加'/',它会删除网址中的'project'和'Pages'。
http://localhost/css/shop-homepage.css
我可以解决这个问题只是因为我不知道为什么会出现这样的问题,即使我可以让我的css加载我感觉不对,因为我不知道为什么。
答案 0 :(得分:1)
base_url
是URL Helper的一部分。
问题出在我们的配置文件中,配置文件说:
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| If this is not set then CodeIgniter will guess the protocol, domain and
| path to your installation.
|
*/
$config['base_url'] = 'http://localhost/site/';
您应该添加斜杠,并且由于您没有,base_url()
函数会自动添加斜杠。
最佳用法是将文件位置作为参数提供,从
开始<link href="<?= base_url("css/bootstrap.min.css"); ?>" rel="stylesheet">
答案 1 :(得分:0)
理想情况下,配置中的base_url应该是:
$config['base_url'] = "http://www.example.com/";
在您的视图中,您可以添加需要包含的文件夹名称和文件名。
<link href="<?= base_url(); ?>css/bootstrap.min.css" rel="stylesheet">
这样就不会产生混淆或双重&#39;
另外更喜欢使用它:
<link href="<?php echo base_url(); ?>css/bootstrap.min.css" rel="stylesheet">
答案 2 :(得分:0)
您无法使用主机名
启动网址localhost/project
否则,无法确定您的域名或服务器中的位置是不可能的。
您需要一个完整的协议前缀:
http://localhost/project
...或者,如果已经在HTTP的上下文中,至少是双斜杠:
//localhost/project
浏览器通常更喜欢隐藏实际的URL(因此存在广泛的混淆),但基础值的工作方式完全相同。