【发布时间】:2017-11-28 09:26:19
【问题描述】:
我正在使用 Codeigniter 并编写了一个方法来创建 css/js 链接,将它们连接起来,然后将它们传递给我的视图。它以前可以工作,直到我决定使用最新的 CI 版本创建项目的干净副本,但现在无法正常工作。
连接数据的方法部分如下:
foreach ($header_css as $item) {
$str .= '<link rel="stylesheet" href="'. base_url() . $item . '" type="text/css" />';
}
JS 文件也有类似的。打印上一段代码时,我得到一个空字符串,所以我决定使用 htmlentities:
foreach ($header_css as $item) {
$str .= htmlentities('<link rel="stylesheet" href="'. base_url() . $item . '" type="text/css" />');
}
它可以工作......部分。我的意思是,如果我此时打印带有链接的字符串,但是现在当我将字符串传递给视图时,数据将打印在屏幕上,而不是添加到头部。所以这是我的观点:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo (isset($title)) ? $title : ''; ?></title>
<meta name="description" content="Test">
<meta name="author" content="Test">
<?php
# load assets
echo (isset($assets)) ? $assets : '';
?>
<script>var ajax_home = "<?php echo base_url(); ?>ajax/";</script>
</head>
<body>
与资产相呼应的部分是在屏幕上打印变量的内容,而不是将资产解析为<script>...</script> 或<link rel="stylesheet" ... />
有任何迹象表明为什么会发生这种情况?
谢谢。
【问题讨论】:
-
我不明白你到底想要什么。你能发布更多的代码吗?那么你的 foreach 放在哪里,变量
$assets是在哪里以及如何定义的?您对 HTML 输出的确切期望是什么?您当前的输出是什么?它会帮助我们帮助你;) -
@be-ndee 对不起。不太确定我在解释中遗漏了什么。我需要的是 $assets 的内容不要打印在屏幕上,而是实际加载资产。 Asses 是一个字符串,例如:'127.0.0.1/storedashboard/assets/css/bootstrap/bootstrap.min.css" type="text/css" />127.0.0.1/storedashboard/assets/DataTables/datatables.min.css" type="text/css “ />”。同样,这是在屏幕上打印的内容,而不是实际为资产创建 html 源
-
那么您的 foreach 循环正在生成 $str 并且您正在将 $assets 传递到您的视图中......这是什么以及如何发生的? (注意:你应该在循环之前初始化 $str 否则 PHP 会抛出一个警告......
标签: javascript php css html codeigniter