※ 引述《dododaphne (啊...)》之銘言:
: Hi 各位大大好,
: 小的是PHP初學者, 最近剛開始嘗試slim framework
: 在網路上看到這個基本教學影片跟著實作:
: "PHP Slim Framework Simple Demo"(http://youtu.be/26CRc89gN10)
: 實作過程很順利,但是後來產生一個bug不知道是哪裡出了問題?
: 程式大致長得像是這樣的:
: // helloslim.php
: <?
: require 'Slim/Slim.php';
: \Slim\Slim::registerAutoloader();
: $app = new \Slim\Slim();
: $app->get('/hello/:name', function ($name) {
: /*render through some template page*/
: });
: $app->run();
: ?>
: 網址列輸入這樣是正常的:
: localhost/dir/helloslim.php/hello/yoyo
: 但如果在尾巴多放'/',網頁就不會load CSS了
: localhost/dir/helloslim.php/hello/yoyo/
: 不知道我可能漏掉甚麼呢?
: 謝謝!
這和 Slim 無關(搔頭),開一下 console 就知道啦,
在 chrome 下你去點那個 .css 檔另開分頁也可以看見他抓到哪去了。
基本上只是 css 的路徑存取問題,
當你在網址末端加上 / ,對瀏覽器來說這就是一個參照路徑,
網址: /path/to/page
href="a.css"
href="../a.css"
href="/a.css"
href="http://localhost/a.css"
載入會是
href="/path/to/a.css"
href="/path/a.css"
href="/a.css"
href="http://localhost/a.css"
如果網址是: /path/to/page/
載入會是
href="/path/to/page/a.css"
href="/path/to/a.css"
href="/a.css"
href="http://localhost/a.css"
如果要避免這種路徑相對問題,
其一是寫完整路徑,
其二你可以使用 base meta http://www.w3schools.com/tags/tag_base.asp
完整路徑還是最安全的啦(攤手
題外話,如果你喜歡 Slim 風格的話,建議可以跳 Silex(小弟用一年半左右)
當初我也寫了半年 Slim,但是架構大一點就覺得不好整理,
這方面 Silex 畢竟是 Symfony 血統,架構擴展相對健全。