私はPHPでルーティングすることを学んでいます。私はエラーなしでページをルーティングすることができますが、私はcss
とjs
ファイルを含めることに固執しています。チュートリアルとサンプルで使用するメディアは、laracastビデオです。私はまた、Windows上のApacheサーバーにxampp
を使用しています。PHPルーティング - エラーにはCSS/jsファイルが含まれています
私は自分の練習を作りたかったし、イメージの下に私がやったファイル構造です、私の.htaccess
ファイルに
、私が持っている:
RewriteEngine On
RewriteBase /season-temp
RewriteRule ^.*$ index.php [END]
私のビューフォルダには、すべてのビューページファイルが含まれているheader
とfooter
css
およびjs
。
GET http://localhost/css/bootstrap.min.css
GET http://localhost/css/logo-nav.css
GET http://localhost/js/jquery.js
GET http://localhost/js/bootstrap.min.js
I挿入しようとした:
header.phpの
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Logo Nav - Start Bootstrap Template</title>
<!-- Bootstrap Core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="/css/logo-nav.css" rel="stylesheet">
</head>
<body>
<?php require('navigations.php'); ?>
footer.php上記符号から
<!-- jQuery -->
<script src="/js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="/js/bootstrap.min.js"></script>
</body>
</html>
、それがエラーを与えます<base href="/">
headセクションを開き、各src/hrefのリンクを'season-temp/<folder_name>/<file_name>'
のようにします。 'season-temp/css/bootstrap.min.css'
でも、まだcssファイルとjsファイルを取得できません。
どのようにそれらのファイルを含める必要がありますか?
Update - Incorrect output
まず、以下の解決策で間違った更新をお詫び申し上げます。 cssとjsは機能しましたが、リンクが壊れています。 @ Tribyの回答で.htaccess
ファイルベースを元に戻すと、リンクは正常に機能しますが、cssとjsは正しくありません。以下は私のnavigations.php
とroutes.php
navigations.phpためのページです
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a href="/season-temp/about">About</a>
</li>
<li>
<a href="/season-temp/services">Services</a>
</li>
<li>
<a href="/season-temp/contact">Contact</a>
</li>
</ul>
</div>
routes.phpの
<?php
$router->get('season-temp','controllers/index.php');
$router->get('season-temp/about','controllers/about.php');
$router->get('season-temp/services','controllers/services.php');
$router->get('season-temp/contact','controllers/contact.php');
@ceejayozは、CSSのために述べたように、私はリンクを更新した場合と、 jsファイルには、次のエラーがあります。
<br />
<b>Fatal error</b>: Uncaught exception 'Exception' with message
'No route defined for this URI.'
in C:\xampp\htdocs\season-temp\core\router.php:30
Stack trace:
#0 C:\xampp\htdocs\season-temp\index.php(9):
Router->direct('season-temp/js/...', 'GET')
#1 {main}
thrown in <b>C:\xampp\htdocs\season-temp\core\router.php</b>
on line <b>30</b><br />
。実際のエラーとは何ですか? URL「http://localhost/css/bootstrap.min.css」にアクセスできますか? – ceejayoz
@ceejayozのように見えますが、画像を確認してください – brianforan
@ceejayozそれを正しく指して申し訳ありません。 'http:// localhost/css/bootstrap.min.css'というURLをコピーして貼り付けるとします。 'error 404'でページを取得することができません – Khairul