作者jscorpio1 (我 天蠍)
看板PHP
標題[請益] require的路徑問題
時間Wed Jul 31 14:27:58 2013
/
├include
│├layout
││├head.php -> require header, menu
││├header.php -> <link.... href="include/css/main.css">
││├menu.php
││└footer.php
│└css
│ └main.css
├news
│├index.php -> require head, footer
├index.php -> require head, footer
└display.php
根目錄下的index,layout跟css都正常
根目錄的index有一個超連結,連到news/index.php
<a href="news/index.php">news</a>
連過去之後,layout有出來,但就是css不行 @_@
本以為是路徑的問題
試過把 include/css/main.css 改為 ../css/main.css
結果連原本正常的 根目錄index也讀不到css了,但layout還是正常的
但是,如果把根index的連結改成display
而在display裡 require news/index.php 就都正常顯示
請問這是什麼原因?
另外,請問reqiure/include的時候,到底該以誰為出發點?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.62.160
※ 編輯: jscorpio1 來自: 140.120.62.160 (07/31 14:39)
1F:→ alpe:require CSS !? 07/31 14:47
2F:→ jscorpio1:css是寫在html <head>裡,那個檔案名稱是header.php 07/31 14:53
3F:→ Madevil:include/require 是後端的事, 路徑當然是需要實體路徑 07/31 15:25
4F:→ Madevil:問題是你根目錄的 index.php 在 include 那個 header.php 07/31 15:26
5F:→ Madevil:它裡面那行 link 到 css 的路徑該指到哪裡 07/31 15:27
6F:→ Madevil:看來把 link 那行路徑改成 /include/css/main.css 應該可 07/31 15:28
7F:→ Madevil:以解決, 相對路徑和絕對路徑這部分請找些資料參考會有幫助 07/31 15:30
8F:→ Madevil:另外一點... link 指定路徑的 attribute 是 href 才對 07/31 15:31
※ 編輯: jscorpio1 來自: 140.120.62.160 (07/31 15:50)
9F:→ jscorpio1:請問為什麼直接連結不行,而透過display來require就ok?? 07/31 16:13
10F:→ Madevil:什麼是 "透過display來require"?? 你要不要先把觀念弄清楚 07/31 16:19
11F:→ Madevil:前後台的差別?? 07/31 16:19
根目錄index.php
<a href="news/index.php"> news </a>
=>版面layout有出現,但是 css沒有成功套用
如果把 根目錄index.php 的超連結改成
<a href="display.php"> news </a>
而
根目錄display.php的內容是
<?php
require 'news/index.php';
?>
=>版面layout跟css則完全正常
另外,我還真不知道前後台的差別,M大可以給個超連結嗎?
感謝M大熱心回答
※ 編輯: jscorpio1 來自: 140.120.62.160 (07/31 16:52)
12F:→ Madevil:在這個案例裡面 php 只是負責產生 html 把結果丟到前端 07/31 17:06
13F:→ Madevil:然後瀏覽器接到 html 以後才去解析產生讀者看到的內容 07/31 17:06
14F:→ Madevil:你現在問題是出在於 html 匯入 css 的路徑, 所以這是前端 07/31 17:09
15F:→ Madevil:因為根目錄的 index.php 或是 display.php 都是位在根目錄 07/31 17:10
16F:→ Madevil:但是 news/index.php 是位在 news/ 下面, 所以跟你的 css 07/31 17:10
17F:→ Madevil:的相對路徑就不一樣, 所以比較簡單的方式是設定成絕對路徑 07/31 17:11
18F:→ Madevil:/include/css/main.css 這樣就找的到 07/31 17:12
19F:→ xxxzzz:"出不來的網址"跟"include/css/main.css" 比對就知道原因了 07/31 22:48