我在我的專案中使用PHP MVC架構。下面是我的一個視圖(php檔案):
<?php
error_reporting(E_ALL)。
ini_set('display_errors', TRUE)。
include "./app/model/loadImages.php"。
?>。
<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">/span>
< meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">/span>
<title>高速公路網格CSS模板</title>
<!
公路模板
https://templatemo.com/tm-520-highway
-->
< meta name="description" content="">
< meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="apple-touch-icon。 png">
<link rel="styleheet" href=" . ./public/assets/css/bootstrap.min.css">/span>
<link rel="styleheet" href=" 。 ./public/assets/css/bootstrap-theme.min.css">/span>
<link rel="styleheet" href=" 。 ./public/assets/css/fontAwesome.css">/span>。
<link rel="styleheet" href=. ./public/assets/css/light-box.css">
<link rel="styleheet" href=" 。 ./public/assets/css/templatemo-style.css"/span>>
<link href="https://fonts.googleapis. com/css?family=Kanit:100,200,300,400,500,600,700,800,900" rel="styleheet">
<script src=". /public/assets/js/vendor/modernizr-2.8.3-respond-1.4.2.js"></script>/span>
</head>
<body>
<nav>
<? php while ($row = $result2-> fetch_assoc()) { $rows[] = $row ? >
<div class="logo">
<a href="index.php">< ? php echo $row['header_1'] ? > <em>< ? php echo $row['header_2'] ? ></em> </a>
</div>/span>
<div class="menu-icon">
<span></span>
</div>/span>
</nav>
<div id="video-container"/span>>
<div class="video-overlay"/span>> </div>>
<div class="video-content"/span>>
<div class="inner">
<h1><? php echo $row['mainTitle_1'] ? > <em>< ? php echo $row['mainTitle_2'] ? ></em> </h1>
<p><? php echo $row['subtitle_1'] ? ></p>>
<p>< ? php echo $row['subtitle_2'] ? ></p>>
<div class="scroll-icon">
< a class="rollTo" data- scrollTo="portfolio" href="#"/span>> <img src=" 。 ./public/assets/img/scroll-icon.png" alt="></a>
</div>/span>
</div>/span>
</div>/span>
<?php } $connection->close() ?>
<?php unset($result2); ? >
< video autoplay="" loop=" muted>
<source src=" . /public/assets/videos/highway-loop.mp4" type="video/mp4" />
</video>
</div>/span>
< div class="grid-portfolio" id="portfolio">
<div class="container">
<div class=" row">
<? php while ($row = $result->fetch_assoc()) { ?
<div class="col-md-4 col-sm-6">
<div class="portfolio-item"/span>>
<div class="thumb">
<a href=".../public/assets/img/< ? php echo $row['image'] ? >" data-lightbox="image-1">
<div class="hover effect">
<div class="hover-content"/span>>
<h1><? php echo $row['title_1'] ? > <em>< ? php echo $row['title_2'] ? ></em></h1>
<p><? php echo $row['subtitle'] ? ></p>>
</div>/span>
</div>/span>
</a>/span>
<div class="image">
<img src="./public/assets/img/< ? php echo $row['image'] ? >"/span>>
</div>/span>
</div>/span>
</div>/span>
</div>/span>
<?php } ?>
</div>
<div class="row">
<div class="col-md-12"/span>>
<div class="load-more-button">/span>
<a href="#"/span>> 加載更多</a>
</div>/span>
</div>/span>
</div>/span>
</div>/span>
</div>/span>
<footer>
<div class="container-fluid"/span>>
<?php foreach($rows as $row) { ?>.
<div class="col-md-12"/span>>
<p>Copyright © < ? php echo $row['bottom_txt_year'] ? > <? php echo $row['bottom_txt_company'] ? > | Designed by <? php echo $row['designer'] ? ></p>
</div>/span>
<?php } ?>
</div>
</footer>
<!-- 模態按鈕-->/span>
<div class="popup-icon">
< button id="modBtn" class="modal-tn"> <img src=" 。 ./public/assets/img/contact-icon.png" alt="></button>
</div>
<!-- 模態-->
< div id="modal" class="modal">/span>
<!-- 模態內容-->
<div class="modal-content">/span>
<!--Modal Header -->
<div class="modal-header">/span>
<h3 class="header-title">給我們發個郵件吧! </h3>給我們發個郵件吧!
<div class="closure-btn"> <img src=" 。 ./public/assets/img/close_contact.png" alt="></div>
</div>/span>
<!--模式主體-->
<div class="modal-body">
<div class="col-md-6 col-md-offset-3">
< form id="contact" action=" method="post">
<div class="row">
<div class="col-md-12"/span>>
<fieldset>/span>
< input name="name"/span> type="text" class="form-control" id="name" placeholder="你的名字。 ..." required="">
</fieldset>/span>
</div>/span>
<div class="col-md-12">
<fieldset>/span>
< input name="email"/span> type="email" class="form-control" id="email" placeholder="你的email。 ..." required="">
</fieldset>/span>
</div>/span>
<div class="col-md-12">
<fieldset>/span>
< textarea name="message"/span> rows="6" class="form-control" id="message" placeholder="你的資訊。 ..." required="></textarea>
</fieldset>/span>
</div>/span>
<div class="col-md-12">
<fieldset>/span>
< button type="submit" id="form-submit" class="btn"> 立即發送訊息</按鈕>
</fieldset>/span>
</div>/span>
</div>/span>
</form>
</div>/span>
</div>/span>
</div>/span>
</div>/span>
<section class="overlay-menu"/span>>
<div class="container">
<div class=" row">
<div class="main-menu">/span>
<ul>/span>
<li>/span>
<a href="index. html">SignUp</a>/span>
</li>/span>
<li>/span>
<a href=" 。 ./public/admin/index.php">LogIn</a>
</li>/span>
<li>/span>
<a href="about. html">/span>關于我們</a>
</li>/span>
<li>/span>
<a href="blog. html">博客條目</a>/span>
</li>/span>
<li>/span>
<a href=" single-post. html">Single Post</a>/span>
</li>/span>
</ul>
<?php foreach($rows as$row) { ?>.
<p><? php echo $row['message_1'] ? ></p>
<?php } ?>
</div>
</div>/span>
</div>/span>
</section>/span>
<script src="https://ajax. googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>/span>
<script>
window.jQuery || document. write('<script src="./public/assets/js/vendor/jquery-1.11.2.min.js"></script> ' )
</script>
<script src=". /public/assets/js/vendor/bootstrap.min.js"></script>
<script src="。 ./public/assets/js/plugins.js"></script>/span>
<script src="。 ./public/assets/js/main.js"></script>/span>
</body>
</html>
而這是我的路由器:
<?php
class app
{
protected $controller = "home" ;
protected $method = "index";
protected $params = [] 。
public function Run()
{
$url = $this-> SplitURL();
if(file_exists("./app/controller/". strtolower($url[0]).".php")
{
$this->controller = strtolower($url[0]) 。
unset($url[0] )。
}
require "./app/controller/".$this->controller.".php";
if(isset($url[1]>)
{
if(method_exists($this->controller, $url[1] )
{
$this->method = $url[1] 。
unset($url[1] )。)
}
}
//array_values函式重新設定陣列的空索引。
$this->params = array_values($url) 。
//此函式呼叫控制器中的方法。
$this->控制器 = new $this->控制器。
call_user_func_array([$this->controller, $this->method], $this->params)。)
}
private function SplitURL()
{
if($_GET == null)
{
return array("home/index") 。
}
else; }
{
return explode("/"/span>, filter_var(trim($_GET['url'], '/')), FILTER_SANITIZE_URL) 。
}
}
}
這是我的一個控制器(home controller):
<?php
class Home
{
public function index()
{
$this->View("gallery/index") 。
}
public function View($view, $data = '')
{
if(file_exists("./app/views/".$view.".php")
{
include " .../app/views/".$view.".php"。
}
}
}
?>.
我的問題是,當我不輸入控制器和索引或只在URL中輸入控制器名稱時,一切都很好,但當我在URL中輸入控制器和方法名稱時,只有HTML被加載,CSS和JavaScript不被加載。我已經提供了我的專案的壓縮檔案。 請幫助我解決這個問題。 https://filebin.net/7nps0b1x04z8a08m
uj5u.com熱心網友回復:
不要在你的鏈接中使用相對路徑href,例如當你使用路由example.com/controller時,href=".../public/assets/css/bootstrap.min.css"從example. com/public/assets/css/bootstrap.min.css但如果路由是example.com/controller/index那么css將從example.com/controller/public/assets/css/bootstrap.min.css加載(我想這個地址是錯的)。
所以像下面這樣定義你的樣式表鏈接(相對路徑doc):
< link rel="styleheet" href="/public/assets/css/bootstrap. min.css">
< link rel="styleheet" href="/public/assets/css/bootstrap-theme. min.css">
< link rel="styleheet" href="/public/assets/css/fontAwesome。 css">
<link rel="styleheet" href="/public/assets/css/light-box. css">
< link rel="styleheet" href="/public/assets/css/templatemo-style. css">
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/331795.html
標籤:
