作者gpmm (银色)
看板PHP
标题Re: [请益] slim framework url加上'/'就无法load CSS
时间Mon Dec 1 22:03:08 2014
※ 引述《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 血统,架构扩展相对健全。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.248.219
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1417442590.A.2E4.html
1F:推 dododaphne: 感谢大大详细的解说~我上了一课了!谢谢! 12/06 00:47