84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
效果顯示
认证高级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=&extra=page%3D&page= 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$ /forum.php?mod=forumdisplay&fid=&page=&%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目錄下。
希望能幫到你。