我如何从 webroot 外部加载 codeigniter font awesome fontface url?

how do i load codeigniter font awesome fontface url from outside of webroot?

我刚开始使用 codeigniter 并设置好它,因此它不需要 index.php 作为 URL 的一部分。

但是,我注意到对 font-awesome 的引用无法正常工作。 以下加载正常。

  <link href="assets/plugins/font-awesome/css/font-awesome.css" rel="stylesheet" type="text/css" />

但是,找不到字体 .eot、woff 等...,导致图标显示为 404。

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

我的配置:

$config['base_url'] = '';

我的.htaccess:

RewriteEngine on
RewriteCond  !^(index\.php|css|woff|eot|ttf|svg|css|js|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]

感谢任何帮助。

编辑 我的文件夹结构是:

codeigniter/
-->application/
-->assets/
---->plugins
---->plugins/font-awesome
---->plugins/font-awesome/css
---->plugins/font-awesome/fonts
-->system/
-->.htaccess
-->index.php

您是否将 fonts 文件夹放在与 fonts-awesome.css 相同的目录中..您必须确保文件夹 ( fonts ) 和文件 font-awesome.css 在同一个目录中folder/directory ..

根据你的问题,确保字体文件夹在 css 文件夹内

我有一个像你一样的文件夹结构,但我在 css 路径中添加了 站点基础 URL:

 <link href="<?php echo base_url('assets/plugins/font-awesome/css/font-awesome.css') ?>" rel="stylesheet">

希望这对你有用。

在 config.php 文件中将您的 BaseUrl 设置为您的站点 url 像这样

$config['base_url'] = 'http://localhost/ci';

将此代码添加到您的config.php文件

$root=(isset($_SERVER['HTTPS']) ? "https://" : "http://").$_SERVER['HTTP_HOST'];
$root.= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;

这对我 100% 有效;)

reference here