所以我在這種事情上是一個新手 - 我剛開始使用CodeIgniter開發,我試圖集成JavaScript庫。但是,我設置了我的.htaccess文件,以便所有請求都在/index.php/之前添加/index.php/,這使得很難包含文件。對於CSS,我只是使用一個PHP包含來解決這個問題,並使其內聯,反正更快。但是,這似乎是一個好主意的JavaScript庫。CodeIgniter和JS庫
有什麼想法?我應該只是創建一個index.php /文件夾並將其粘貼在那裏?
謝謝!
麻辣
所以我在這種事情上是一個新手 - 我剛開始使用CodeIgniter開發,我試圖集成JavaScript庫。但是,我設置了我的.htaccess文件,以便所有請求都在/index.php/之前添加/index.php/,這使得很難包含文件。對於CSS,我只是使用一個PHP包含來解決這個問題,並使其內聯,反正更快。但是,這似乎是一個好主意的JavaScript庫。CodeIgniter和JS庫
有什麼想法?我應該只是創建一個index.php /文件夾並將其粘貼在那裏?
謝謝!
麻辣
您可以只需添加一個條件,它避免了重寫規則:
RewriteCond $1 !^(index\.php|images|scripts|styles|robots\.txt)
然後你就可以把所有的腳本,圖像等,在你的文檔根目錄。
查看Apache Rewrite docs瞭解更多信息。
我實際使用的資源控制在我所有的外部文件帶來:
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;
}
正如你所看到的,控制器將文件名傳遞給視圖。然後該視圖會查看是否有與importcript變量關聯的js文件或php文件。如果有,它將設置標題並顯示文件。
這看起來很有用,但是對我的需求來說是過量的 – Mala 2009-11-23 02:45:25
如果您使用mod_rewrite,只需在您的RewriteRule前添加一個RewriteCond即可。 例如:
RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|png|gif)$
RewriteRule ^([^/]+)/([^/]+)/? index.php?ctrl=$1&event=$2 [L,QSA]
也許我missunderstanding的東西,但爲什麼不直接包括JavaScript庫與絕對URL
<script type="text/javascript" src="/js/javascript.js"></script>
相同的CSS
<link rel="stylesheet" type="text/css" href="/css/main.css">
如果你開始在DOC root使用/
那麼你將不會有任何問題找到文件。
謝謝!這解決了我的問題,以及其他一些我也有:) – Mala 2009-11-22 21:34:53