Bạn sẽ không bao gồm các file JS trong PHP, họ sẽ được xuất ra như thẻ script trong HTML bạn sản xuất mà bạn có thể được sản xuất như đầu ra từ kịch bản PHP.
Theo như tôi biết, không có hàm CodeIginiter được tích hợp để bao gồm đầu ra này giống như cho CSS sử dụng hàm link_tag()
do CI cung cấp. Tôi đã thêm một hàm có tên là script_tag()
vào tệp system/helpers/html_helper.php
từ CI. Chức năng là:
if (! function_exists('script_tag')) {
function script_tag($src = '', $language = 'javascript', $type = 'text/javascript', $index_page = FALSE)
{
$CI =& get_instance();
$script = '<scr'.'ipt';
if (is_array($src)) {
foreach ($src as $k=>$v) {
if ($k == 'src' AND strpos($v, '://') === FALSE) {
if ($index_page === TRUE) {
$script .= ' src="'.$CI->config->site_url($v).'"';
}
else {
$script .= ' src="'.$CI->config->slash_item('base_url').$v.'"';
}
}
else {
$script .= "$k=\"$v\"";
}
}
$script .= "></scr"."ipt>\n";
}
else {
if (strpos($src, '://') !== FALSE) {
$script .= ' src="'.$src.'" ';
}
elseif ($index_page === TRUE) {
$script .= ' src="'.$CI->config->site_url($src).'" ';
}
else {
$script .= ' src="'.$CI->config->slash_item('base_url').$src.'" ';
}
$script .= 'language="'.$language.'" type="'.$type.'"';
$script .= ' /></scr'.'ipt>'."\n";
}
return $script;
}
}
Sau đó, trong mã PHP của bạn, bạn có thể làm:
echo script_tag('content/js/jquery-1.4.2.js');
Nguồn
2010-10-01 16:48:27
Cảm ơn bạn Isern Palaus. Tôi đã thử điều này nhưng base_url() đang lặp lại "http://example.com/" và đưa ra lỗi không tìm thấy tệp cho các tệp .js đó. Bất kỳ đề xuất? – Raj
Bạn có thể đăng bộ điều khiển và chế độ xem của mình không? Nếu base_url() hiển thị url của bạn ở bên phải. Bạn đã cấu hình URL BASE của bạn trên file config.php trên thư mục config, nó rất quan trọng! – ipalaus
Cảm ơn bạn Isern. Trên thực tế tôi đã không đặt cấu hình ['base_url'] trong tập tin config.php vào url dự án của tôi. Tôi chỉ làm vậy. – Raj