Re: [请益] slim framework url加上'/'就无法load CSS

楼主: gpmm (银色)   2014-12-01 22:03:08
※ 引述《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 血统,架构扩展相对健全。
作者: dododaphne (啊...)   2014-12-06 00:47:00
感谢大大详细的解说~我上了一课了!谢谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com