我正在使用CodeIgniter 3作为Web平台,并尝试将语义UI CSS导入到我的页面中。我是通过在CSS导入的href
属性中使用CodeIgniter的base_url()
方法来实现的。
然而,semantic.css本身导入了我的服务器上的一些其他字体,由于Cross-Origin
资源共享策略,这些字体无法加载。Cross-Origin
资源共享策略已阻止加载原始字体'http://[::1]
':请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://localhost”。
这是因为base_url()返回的域是[::1]
,而不是我在浏览器中输入的localhost。
出于某种原因,在我看来chrome(还有Edge)似乎并不认为[::1]
和localhost是同一个主机,或者我只是在装傻。但我知道的是,如果我将主semantic.css文件的路径和复杂代码localhost更改到该文件中,它就可以工作,如果我不使用localhost请求页面,而是使用[::1]
,它也可以工作
我做过其他类似的项目,但从来没有出现过"[::1]"
。究竟是什么导致PHP回显这样的路径?
5条答案
按热度按时间i34xakig1#
因为你的
base_url
是空的。在配置文件/配置文件.php中
关于
http://\[::1\]/
更有趣的事情czfnxgou2#
您需要编辑**$config ['base_url']**,如下所示:
使用以上代码获取动态url。
vxbzzdmp3#
更准确、更动态的方式
虽然你仍然可以使用端口。
gr8qqesn4#
为了使用base_url();你必须先加载URL助手。2这可以在application/config/autoload. php中完成(在第67行或附近):也可以手动使用
设置
我想这会对你有帮助
tzcvj98z5#
这就是你需要在config/config.php中修改的地方,它在“localhost”和你的“服务器”中都能正常工作: