2017-07-15 13 views
0

私自身のMVC実装を書いていますが、ローカルのCSSファイルを含む問題に直面しています。基本的に私のアプリケーションのすべてのリクエストはコントローラとアクションを得るためにそれらを分解するメソッドに行きます。たとえば:PHPでインクルードされているとCSSファイルが無視される

localhost:8888/items/list は、この要求は私が持っている私のindex.phpにリダイレクトされます。

Application::start($_SERVER['REQUEST_URI']);

その要求は、コントローラのアイテム 'とアクション「リスト」を取得するために分解され これまでのところ、CDNからブートストラップを使用していたので、私はこの問題を認識しませんでした。しかし、今私はHTMLのようなものを含めると:

<link rel="stylesheet" type="text/css" href="/css/style.css"> 

これは再び私の方法に行くと動作しません。私が試した何 は、URIが「cssの」が含まれているかどうかを確認することであり、それはしてファイルを含めるだけでない場合:

if(preg_match('/css/',$uri)){ 
include "../webroot/$uri";} 

これは、CSSをロードするという観点で働いていたが、CSSは無視されます。また、私は

"リソースはスタイルシートとして解釈されますが、MIMEタイプtext/html:" http://localhost:8888/css/style.css "で転送されます。

イメージを挿入しようとすると問題はさらに大きくなりますが、少なくともイメージは表示できますが、 'include'を介して再度表示できます。任意のアイデアをどのようにこれを修正するには?

PSは、私は、しかし、私はfile_get_contentsheader("Content-type: text/css; charset: UTF-8");を試してみてください代わりに、次のように含まれ、この私の現在の設定

+0

localhost:8080/project_name/css/style.cssを試しましたか? –

+0

css自体の読み込みに問題はありませんが、何らかの理由で完全に無視されるという問題があります。 – martini

+0

もちろん、あなたのスクリプトは間違ったヘッダーを送信する可能性があります。 PHPにはこれはテキストだけです。応答が実際にはcssの規則であることを示す特定のヘッダーを送信する必要があります。 – arkascha

答えて

1

での作業を取得する方法がわからない、CSSはテキストファイルとして読み込まれるため、問題が最も可能性が高いことを知っています

if(preg_match('/css/',$uri)){ 
    header("Content-type: text/css; charset: UTF-8"); 
    if(!$file = file_get_contents("http://localhost:8080/project_name/webroot/$uri")) return 0; 
    echo $file; 
} 
関連する問題