Cakephp 为什么在';app/webroot';不是从add.ctp文件加载的?

Cakephp 为什么在';app/webroot';不是从add.ctp文件加载的?,cakephp,Cakephp,在我的CakePHP项目中,我将所有css和js文件放在“app/webroot”文件夹中,index.ctp加载了所有设计。但是在“../webroot”中加载add.ctp和edit.ctp文件时没有css/js文件 $this->layout = 'newlayout'; 我把这段代码放在“controller”文件中的andex()、add()和edit()操作中 我的newlayout.ctp文件代码为 <!DOCTYPE html> <html>

在我的CakePHP项目中,我将所有css和js文件放在“app/webroot”文件夹中,index.ctp加载了所有设计。但是在“../webroot”中加载add.ctp和edit.ctp文件时没有css/js文件

$this->layout = 'newlayout';
我把这段代码放在“controller”文件中的andex()、add()和edit()操作中

我的newlayout.ctp文件代码为

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo $title_for_layout; ?></title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
    <!-- Bootstrap 3.3.4 -->
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" />    
    <!-- FontAwesome 4.3.0 -->
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
    <!-- Ionicons 2.0.0 -->
    <link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" type="text/css" />    
    <!-- Theme style -->
    <link href="dist/css/AdminLTE.min.css" rel="stylesheet" type="text/css" />
    <!-- AdminLTE Skins. Choose a skin from the css/skins 
         folder instead of downloading all of them to reduce the load. -->
    <link href="dist/css/skins/_all-skins.min.css" rel="stylesheet" type="text/css" />
    <!-- iCheck -->
    <link href="plugins/iCheck/flat/blue.css" rel="stylesheet" type="text/css" />
    <!-- Morris chart -->
    <link href="plugins/morris/morris.css" rel="stylesheet" type="text/css" />
    <!-- jvectormap -->
    <link href="plugins/jvectormap/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css" />
    <!-- Date Picker -->
    <link href="plugins/datepicker/datepicker3.css" rel="stylesheet" type="text/css" />
    <!-- Daterange picker -->
    <link href="plugins/daterangepicker/daterangepicker-bs3.css" rel="stylesheet" type="text/css" />
    <!-- bootstrap wysihtml5 - text editor -->
    <link href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css" rel="stylesheet" type="text/css" />

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body class="skin-blue sidebar-mini">
    <div class="wrapper">

      <header class="main-header">
        <!-- Logo -->
        <a href="#" class="logo">
          <!-- mini logo for sidebar mini 50x50 pixels -->

          <!-- logo for regular state and mobile devices -->
          <span class="logo-lg"><b>POS</b> App</span>
        </a>
        <!-- Header Navbar: style can be found in header.less -->
        <nav class="navbar navbar-static-top" role="navigation">
          <!-- Sidebar toggle button-->
          <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
            <span class="sr-only">Toggle navigation</span>
          </a>
          <div class="navbar-custom-menu">
            <ul class="nav navbar-nav">
              <!-- Messages: style can be found in dropdown.less-->

              <!-- Notifications: style can be found in dropdown.less -->

              <!-- Tasks: style can be found in dropdown.less -->

              <!-- User Account: style can be found in dropdown.less -->

              <!-- Control Sidebar Toggle Button -->

            </ul>
          </div>
        </nav>
      </header>
      <!-- Left side column. contains the logo and sidebar -->
      <aside class="main-sidebar">
        <!-- sidebar: style can be found in sidebar.less -->
        <section class="sidebar">
          <!-- Sidebar user panel -->
          <div class="user-panel">

          </div>

          <!-- sidebar menu: : style can be found in sidebar.less -->

        </section>
        <!-- /.sidebar -->
      </aside>

      <!-- Content Wrapper. Contains page content -->
      <div class="content-wrapper">
        <!-- Content Header (Page header) -->
        <section class="content-header">
          <h1>
            <?php echo $this->Session->flash(); ?>
          </h1>
          <ol class="breadcrumb">
            <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
            <li class="active">Dashboard</li>
          </ol>
        </section>

        <!-- Main content -->
        <section class="content">

            <?php echo $this->fetch('content'); ?>

          </section><!-- /.content -->
      </div><!-- /.content-wrapper -->
      <footer class="main-footer">
        <strong>Copyright &copy; 2014-2015 .</strong> All rights reserved.
      </footer>

      <!-- Control Sidebar -->      

      <div class='control-sidebar-bg'></div>
    </div><!-- ./wrapper -->

    <!-- jQuery 2.1.4 -->
    <script src="plugins/jQuery/jQuery-2.1.4.min.js"></script>
    <!-- jQuery UI 1.11.4 -->
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" type="text/javascript"></script>
    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
    <script>
      $.widget.bridge('uibutton', $.ui.button);
    </script>
    <!-- Bootstrap 3.3.2 JS -->
    <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script>    
    <!-- Morris.js charts -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
    <script src="plugins/morris/morris.min.js" type="text/javascript"></script>
    <!-- Sparkline -->
    <script src="plugins/sparkline/jquery.sparkline.min.js" type="text/javascript"></script>
    <!-- jvectormap -->
    <script src="plugins/jvectormap/jquery-jvectormap-1.2.2.min.js" type="text/javascript"></script>
    <script src="plugins/jvectormap/jquery-jvectormap-world-mill-en.js" type="text/javascript"></script>
    <!-- jQuery Knob Chart -->
    <script src="plugins/knob/jquery.knob.js" type="text/javascript"></script>
    <!-- daterangepicker -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js" type="text/javascript"></script>
    <script src="plugins/daterangepicker/daterangepicker.js" type="text/javascript"></script>
    <!-- datepicker -->
    <script src="plugins/datepicker/bootstrap-datepicker.js" type="text/javascript"></script>
    <!-- Bootstrap WYSIHTML5 -->
    <script src="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js" type="text/javascript"></script>
    <!-- Slimscroll -->
    <script src="plugins/slimScroll/jquery.slimscroll.min.js" type="text/javascript"></script>
    <!-- FastClick -->
    <script src='plugins/fastclick/fastclick.min.js'></script>
    <!-- AdminLTE App -->
    <script src="dist/js/app.min.js" type="text/javascript"></script>    

    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
    <script src="dist/js/pages/dashboard.js" type="text/javascript"></script>    

    <!-- AdminLTE for demo purposes -->
    <script src="dist/js/demo.js" type="text/javascript"></script>
  </body>
</html>
每次请求css和js文件都会得到这种错误响应!
我不知道

您应该使用
CakePHP助手
来包含资产文件(css、js等)。让我们看看如何使用include css文件

<head>
   <?php echo $this->Html->css(array('forms', 'tables', 'menu')); ?>

  // forms, tables, menu are the css file thoese are locate under app/webroot/css directory
</head>

//表单、表格和菜单是位于app/webroot/css目录下的css文件

查看您描述的错误

The action bootstrap is not defined in controller
…告诉您尝试加载的操作/路由,
bootstrap()
,不是该控制器中的函数


上述问题可能与加载引导无关。仔细检查您试图访问的路由/URL。如果是
http://example.com/controller/bootstrap
则必须在该控制器中定义函数(操作)
bootstrap()

一旦解决了这个问题,您可以在OnGithub中找到一个将Twitter引导与CakePHP结合使用的工作示例,它提供了强大的功能

在本例中,我使用的是一个托管版本的Bootstrap,但在它下面的一行中,您会发现一个名为Jasny Bootstrap的扩展,它位于
/app/webroot/components/Jasny Bootstrap/[…]Jasny Bootstrap.min.css

此外,如果您不想在每个操作中重复定义
$this->layout
:您可以使用中的
beforeFilter()
为所有操作定义默认自定义布局,也可以在单个控制器中执行此操作



虽然不是必需的,但我很喜欢使用to(比如Bootstrap)。如果你想调查一下,确保在
/webroot

下的某个地方共享调用css&js文件的
newlayout
layout的代码。请检查我已共享了'newlayout.ctp'文件的代码@u2460470。在调用“添加”操作时,在浏览器中检查了对'css'/'js'文件的响应后,我已编辑了我的问题。请查收。CakePHP正在寻找每个“文件夹”名称的操作声明!用这种方法解决了问题。我没有参与那个项目。我最近知道了这个问题的现状。很抱歉迟到了。:)
The action bootstrap is not defined in controller