젠드 프레임 워크 (2)를 처음 사용했습니다. 나는 프로젝트로서 미니 ERP를 개발해 왔으며 모든 것이 훌륭하게 보였다.젠드 프레임 워크 - 컨트롤러 - HeadScript - 'composer update'후로드되지 않음
하지만 오늘 아침에 PHPUnit을 설치하고 composer.json 파일을 업데이트하고 composer install
을 실행했지만 saind nothing to install
을 실행했습니다. 그런 다음 몇 가지 간단한 검색 후에 나는 composer update
을 대신 실행해야한다고 언급했습니다. 업데이트 Zend Framework
을 2.2.0
및 일부 업데이트했습니다. 젠드는 2.0.8
이었습니다.
내 파트너가 데모가 실패 할 때까지 응용 프로그램을 실행했습니다. 다 잘 된 것 같습니다.
JavaScript 파일을로드하지 않아서 발생한 문제를 진단했습니다. 뷰에 필요한 JavaScript는 다음과 같이 컨트롤러를 통해 제공됩니다.
public function viewContactAction(){
// Get the user id from url
$id = $this->params()->fromRoute('id');
$this->headScript = new HeadScript();
$this->headScript->appendFile('../../js/pages/lib/contact.view.js');
$this->headScript->appendFile('../../js/packages/json-populate/dist/jquery.jsonPopulate.min.js');
$view = new ViewModel(array('title' => 'Contact View', 'contact_id' => $id));
$view->setTemplate('contacts/contacts/contact');
return $view;
//die("User View for $id");
}
는 다음 나는
Application
model
아래의 레이아웃 파일에 보였다. 그것은 다른 것을 사용하고있는 것 같았다. 그리고 다음과 같이 업데이트했습니다. 이 공용 폴더
/js/pages/lib/contact.view.js
에 있었던 것처럼이 파일 찾을 수 없다는 문제 같은 몇 가지 일이 될 것이라고 생각
public function viewContactAction(){
// Get the user id from url
$id = $this->params()->fromRoute('id');
//$this->headScript = new HeadScript();
$this->headScript()->appendFile('../../js/pages/lib/contact.view.js');
$this->headScript()->appendFile('../../js/packages/json-populate/dist/jquery.jsonPopulate.min.js');
$view = new ViewModel(array('title' => 'Contact View', 'contact_id' => $id));
$view->setTemplate('contacts/contacts/contact');
return $view;
//die("User View for $id");
}
, 나는 파일 경로를 변경,하지만 여전히 파일이 표시되지 않습니다.
컨트롤러의 헤드 스크립트를 더 이상 지원하지 않습니까? 아니면 방법이 바뀌 었습니까? 미리 감사드립니다.
좋아,이 파일은 내 레이아웃 파일입니다. js를 추가하는 것 외에는 변경하지 않은 것을 기억합니다.
<?php echo $this->doctype(); ?>
<html lang="en">
<head>
<meta charset="utf-8">
<?php echo $this->headTitle('ZF2 '. $this->translate('Skeleton Application'))->setSeparator(' - ')->setAutoEscape(false) ?>
<?php echo $this->headMeta()->appendName('viewport', 'width=device-width, initial-scale=1.0') ?>
<!-- Le styles -->
<?php echo $this->headLink(array('rel' => 'shortcut icon', 'type' => 'image/vnd.microsoft.icon', 'href' => $this->basePath() . '/images/favicon.ico'))
->prependStylesheet($this->basePath() . '/css/bootstrap-responsive.min.css')
->prependStylesheet($this->basePath() . '/css/style.css')
->prependStylesheet($this->basePath() . '/css/bootstrap.min.css') ?>
<!-- Scripts -->
<?php echo $this->headScript()->prependFile($this->basePath() . '/js/html5.js', 'text/javascript', array('conditional' => 'lt IE 9',))
->prependFile($this->basePath() . '/js/bootstrap.min.js')
->prependFile($this->basePath() . '/js/jquery.min.js')
->appendFile($this->basePath() . '/js/jquery.konnections.tableDefinition.js')
->appendFile($this->basePath() . '/js/jquery.konnections.appendTemplateFromJSON.js'); ?>
<?php //echo $this->headScript; ?>
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="<?php echo $this->url('home') ?>"><?php echo $this->translate('Skeleton Application') ?></a>
<div class="nav-collapse collapse">
<ul class="nav">
<li class="active"><a href="<?php echo $this->url('home') ?>"><?php echo $this->translate('Home') ?></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<?php echo $this->translate('Contacts'); ?>
</a>
<ul class="dropdown-menu">
<li><a href='contacts'>Contact Table</a></li>
<li><a href='contacts/add-contact'>Add New Contact</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
</div>
<div class="container">
<?php echo $this->content; ?>
<hr>
<footer>
<p>© 2005 - 2012 by Zend Technologies Ltd. <?php echo $this->translate('All rights reserved.') ?></p>
</footer>
</div> <!-- /container -->
<?php echo $this->inlineScript() ?>
</body>
</html>
생성 된 소스는 다음과 같습니다 (페이지가 다소 길어서 헤더 만 포함됨).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ZF2 Skeleton Application</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Le styles -->
<link href="/css/bootstrap.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/style.css" media="screen" rel="stylesheet" type="text/css">
<link href="/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css">
<link href="/images/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
<!-- Scripts -->
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!--[if lt IE 9]><script type="text/javascript" src="/js/html5.js"></script><![endif]-->
<script type="text/javascript" src="/js/jquery.konnections.tableDefinition.js"></script>
<script type="text/javascript" src="/js/jquery.konnections.appendTemplateFromJSON.js"></script> </head>
확실한 질문 : HTML 소스에 표시됩니까? 레이아웃은 layout.phtml에서 어떻게 보이나요? – Sam
아니요. 나는 레이아웃 파일로 초 안에 질문을 갱신 할 것이다. –
생성 된 소스의 레이아웃 소스 및 헤드 섹션을 추가했습니다. zend 해골 앱 위에 재미있는 프로젝트입니다. –