84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Effektanzeige
认证高级PHP讲师
应该是css文件不存在引起的,看看目下是否有css资源
不得不说你们这些程序员。。。
包括symfony,wiki系统在内的各种系统, 外加wordpress,inews等等能把地址写成/index.php/M/V/C 这种类型的,或者写成 /M/V/C.html 这种类型的, 有些情况下不显示CSS是很正常的,而且出现的原因,从前端来看,99%都是找不到CSS。 wordpress用google的字体导致页面半天不显示是另外一个话题了。
从后台来说,有些系统如会提供解决方案,例如CI,写成/index.php/M/V/C 这种类型会找的到CSS,这个就是CI自己比较良心。(可能有,头几天瞅了一下CI的手册,模糊的记得有这个实现。)也有很多别的东西会给实现,不是仅仅CI给实现了。 实现原理就是/index.php/css/template.css 他会把/css/template.css当成参数传给index.php,然后用php给读出来。
有些东西就比较坑了, 他自己要用重写但是index.php又不提供这种方式,也就直接导致/index.php/css/template.css ,传进去的参数不工作,直接导致不显示CSS。 例如:mediawiki,头几天有个人新装了mediawiki,但是没搞rewrite,他就不会给显示出来。
有些服务器软件例如nginx,有些情况下默认把参数传进去, 例如访问www.test.com/M/V/C,nginx会解析成www.test.com/index.php/M/V/C,遇到那些良心的就会显示。 当然有些就傻乎乎的去找服务器目录的M/V/C目录,当然403/404。
以上说了那么多,看不懂的话,你就当我在自说自话,下面是重点,从深层次解析这个问题。
重点在于:
重写机制,或者叫做rewrite。 一般写php的都会有经验,网站肯定会带一大波参数,例如www.bbs.com/forum.php?mod=forumdisplay&fid=25
但是有些php站点就不带,例如你访问discuz,http://www.discuz.net/forum-10-1.html 这个示例页面,网站根目录肯定不会有forum-10-1.html这个文件了,因为第一是根目录有写权限可能会不安全,第二是这个文件需要实时更新,也就是说相当于回到了以前用文本文件当成数据库的时代,硬盘压力大而且坏得快。
当然了这个文件不存在要怎么办啊?
当然这个时候服务器软件nginx/lighttpd/apache就有作用了。 apache最简单,一般的系统会有.htaccess文件给你,你把这个文件往网站根目录一丢就行。 nginx据说也能用.htaccess文件,但是我没用过,都是手动配置。 lighttpd必须要手动配置。
现在你访问这个文件, 例如老板娘nginx,收到了这个请求,肯定对外说哎呀哎呀,来的都是客,别忙活了先坐会吧,马上给你上茶,然后马上叫伙计去准备。 伙计一看老板娘要上茶,然后就去准备茶叶和开水。 这里的伙计自然就是nginx的rewrite模块。 nginx的模块的写法:(这里是重写http://www.discuz.net/thread-998595-1-1.html这个页面的)
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
上面一行代码的作用是, 凡是http://www.discuz.net/thread-998595-1-1.html这种类型的网址,直接给转换成www.discuz.net/viewthread.php?tid=998595&extra=page%3D1&page=1这种形式。 当然这行代码有点老,新的discuz已经不用这种rewrite规则了。你访问这个页面如果是404那不代表我说的错了。
类似的规则的htaccess的写法如下:(这里是重写http://www.discuz.net/forum-10-1.html这个页面的)
RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
话说回来, 你这种问题出现的原因是, CSS文件被当成参数传进app_dev.php这里面了,自然就找不到css了。
具体解决方法也一并给你: 第一:百度 symfony rewrite app_dev.php 第二:重写机制依赖正则表达式。无论哪个服务器软件都逃不了。 三是分钟学会正则表达式地址:http://www.jb51.net/tools/zhengze.html
http://symfony.cn/articles/symfony2-nginx-configuration.html 请仔细参悟这一行: rewrite ^/app.php/?(.*)$ /$1 permanent;
顺带:毕业生求实习岗位。
同楼上的 用虚拟主机 不要直接访问 入口文件
用命令行进入到项目根目录,运行:
app/console assets:install web
回到浏览器刷新一下,应该就看到了。原因是安装完成之后缺少了css等资源文件的安装(Windows下可能这样吧,我没用Windows玩过sf2),上面的命令会把sf2默认的demo Bundle中的资源文件安装到web/bundles目录下。
希望能帮到你。
应该是css文件不存在引起的,看看目下是否有css资源
不得不说你们这些程序员。。。
包括symfony,wiki系统在内的各种系统,
外加wordpress,inews等等能把地址写成/index.php/M/V/C 这种类型的,或者写成 /M/V/C.html 这种类型的,
有些情况下不显示CSS是很正常的,而且出现的原因,从前端来看,99%都是找不到CSS。
wordpress用google的字体导致页面半天不显示是另外一个话题了。
从后台来说,有些系统如会提供解决方案,例如CI,写成/index.php/M/V/C 这种类型会找的到CSS,这个就是CI自己比较良心。(可能有,头几天瞅了一下CI的手册,模糊的记得有这个实现。)也有很多别的东西会给实现,不是仅仅CI给实现了。
实现原理就是/index.php/css/template.css 他会把/css/template.css当成参数传给index.php,然后用php给读出来。
有些东西就比较坑了,
他自己要用重写但是index.php又不提供这种方式,也就直接导致/index.php/css/template.css ,传进去的参数不工作,直接导致不显示CSS。
例如:mediawiki,头几天有个人新装了mediawiki,但是没搞rewrite,他就不会给显示出来。
有些服务器软件例如nginx,有些情况下默认把参数传进去,
例如访问www.test.com/M/V/C,nginx会解析成www.test.com/index.php/M/V/C,遇到那些良心的就会显示。
当然有些就傻乎乎的去找服务器目录的M/V/C目录,当然403/404。
以上说了那么多,
看不懂的话,你就当我在自说自话,下面是重点,从深层次解析这个问题。
重点在于:
重写机制,或者叫做rewrite。
一般写php的都会有经验,网站肯定会带一大波参数,例如www.bbs.com/forum.php?mod=forumdisplay&fid=25
但是有些php站点就不带,例如你访问discuz,http://www.discuz.net/forum-10-1.html 这个示例页面,网站根目录肯定不会有forum-10-1.html这个文件了,因为第一是根目录有写权限可能会不安全,第二是这个文件需要实时更新,也就是说相当于回到了以前用文本文件当成数据库的时代,硬盘压力大而且坏得快。
当然了这个文件不存在要怎么办啊?
当然这个时候服务器软件nginx/lighttpd/apache就有作用了。
apache最简单,一般的系统会有.htaccess文件给你,你把这个文件往网站根目录一丢就行。
nginx据说也能用.htaccess文件,但是我没用过,都是手动配置。
lighttpd必须要手动配置。
现在你访问这个文件,
例如老板娘nginx,收到了这个请求,肯定对外说哎呀哎呀,来的都是客,别忙活了先坐会吧,马上给你上茶,然后马上叫伙计去准备。
伙计一看老板娘要上茶,然后就去准备茶叶和开水。
这里的伙计自然就是nginx的rewrite模块。
nginx的模块的写法:(这里是重写http://www.discuz.net/thread-998595-1-1.html这个页面的)
上面一行代码的作用是,
凡是http://www.discuz.net/thread-998595-1-1.html这种类型的网址,直接给转换成www.discuz.net/viewthread.php?tid=998595&extra=page%3D1&page=1这种形式。
当然这行代码有点老,新的discuz已经不用这种rewrite规则了。你访问这个页面如果是404那不代表我说的错了。
类似的规则的htaccess的写法如下:(这里是重写http://www.discuz.net/forum-10-1.html这个页面的)
话说回来,
你这种问题出现的原因是,
CSS文件被当成参数传进app_dev.php这里面了,自然就找不到css了。
具体解决方法也一并给你:
第一:百度 symfony rewrite app_dev.php
第二:重写机制依赖正则表达式。无论哪个服务器软件都逃不了。
三是分钟学会正则表达式地址:http://www.jb51.net/tools/zhengze.html
http://symfony.cn/articles/symfony2-nginx-configuration.html
请仔细参悟这一行: rewrite ^/app.php/?(.*)$ /$1 permanent;
顺带:毕业生求实习岗位。
同楼上的 用虚拟主机 不要直接访问 入口文件
用命令行进入到项目根目录,运行:
回到浏览器刷新一下,应该就看到了。原因是安装完成之后缺少了css等资源文件的安装(Windows下可能这样吧,我没用Windows玩过sf2),上面的命令会把sf2默认的demo Bundle中的资源文件安装到web/bundles目录下。
希望能帮到你。