我正在学习cakePHP,
一切似乎都没问题,除了我对如何使用default.ctp以及应该放在Elements文件夹中的内容感到非常困惑。
这是我在学习cakePHP的第一课后一直使用的default.ctp文件:
(我从这个URL复制http://book.cakephp.org/view/96/Layouts)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title_for_layout?></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!-- Include external files and scripts here (See HTML helper for more info.) -->
<?php echo $scripts_for_layout ?>
</head>
<body>
<!-- If you'd like some sort of menu to
show up on all of your views, include it here -->
<div id="header">
<div id="menu">...</div>
</div>
<!-- Here's where I want my views to be displayed -->
<?php echo $content_for_layout ?>
<!-- Add a footer to each displayed page -->
<div id="footer">...</div>
</body>
</html>
但问题是布局会对我创建的所有网页生效
让我们看看我最近遇到的情况
在其中一个.ctp文件中,我需要使用JQuery函数
,我需要在.ctp文件中添加一些和标签。
以下是我使用的标签:
<Script language="javascript">
$(document).ready(function()
{
// some functions here
});
</Script>
<style type="text/css">
{
#toppage{
width:800px;
}
但是当我关注default.ctp文件时,我注意到这些标签(即<Style>
和<Script>
)恰好出现在标签下方。
据我所知,自定义的Javascript函数应该放在HTML的标记内
我已考虑在default.ctp文件中添加<Style>
和<Script>
,但随后
这些代码将出现在每个网页中,而不仅仅是特定的网页。
请帮忙。
答案 0 :(得分:3)
如果您可以为特定于页面的样式创建外部样式表并将JavaScript保存在单独的文件中,那么您将能够在视图中使用HTML帮助程序将链接标记插入到样式表中{ {1}}变量出现在布局中,而脚本标记出现在JavaScript文件中,代替$stylesheets_for_layout
变量。为此,将$scripts_for_layout
键设置为inline
的数组作为false
方法的第二个参数或作为script()
方法的第三个参数传递。
css()
答案 1 :(得分:0)
在页面顶部放置一个页面开关,并有条件地包含这两个文件。或者使文件以页面上的内容为条件。
在jQuery中,在执行操作之前,先查看您要使用的元素是否存在。也许你的CSS,你应该将元素包装在一个具有唯一ID的div中,所以css只会影响这些元素。
答案 2 :(得分:0)
您还可以创建另一个布局,并将其用于manual中所述的特定方法。