Я на самом деле использовать контроллер ресурсов, чтобы принести во всех моих внешних файлов:
class Resources extends Controller
{
public function __construct()
{
parent::__construct();
}
public function javascript()
{
$arr = func_get_args();
if(sizeof($arr) == 0)
{
show_404();
return;
}
if(is_numeric($arr[ sizeof($arr) - 1 ]))
{
array_pop($arr);
}
$name = implode("/", $arr);
$this->load->view("javascript", array("importscript" => $name));
}
public function css()
{
$arr = func_get_args();
if(sizeof($arr) == 0)
{
show_404();
return;
}
if(is_numeric($arr[ sizeof($arr) - 1 ]))
{
array_pop($arr);
}
$name = implode("/", $arr);
$this->load->view("css", array("importscript" => $name));
}
public function image()
{
$arr = func_get_args();
if(sizeof($arr) == 0)
{
show_404();
return;
}
if(is_numeric($arr[ sizeof($arr) - 1 ]))
{
array_pop($arr);
// if the last item is a number, that means it was
// automatically generated to prevent caching
}
$name = implode("/", $arr);
$this->load->view("images", array("importscript" => $name));
}
}
Различные виды все что-то вроде этого:
$import = dirname(__FILE__) . "/javascript/$importscript";
if(!showjs($import) && is_dir($import))
{
if(!showjs("$import/$importscript"))
{
show_404();
}
}
function showjs($imp)
{
if(is_file("$imp.js"))
{
header('Content-type: application/javascript');
echo "/*----- Imported into PHP so JavaScript can all be dynamically declared -----*/\n\n";
echo file_get_contents("$imp.js");
return true;
}
elseif(is_file("$imp.php"))
{
header('Content-type: application/javascript');
echo "/*----- Imported into PHP so JavaScript can all be dynamically declared -----*/\n\n";
include_once("$imp.php");
return true;
}
return false;
}
Как вы можете видеть, контроллер передает имя файла в представление. Затем в представлении отображается, есть ли файл js или файл php, связанный с переменной importcript. Если есть, он устанавливает заголовки, а затем отображает файлы.
спасибо! это решает мою проблему и некоторые другие, которые у меня были слишком :) – Mala