0

各画像ファイルを特定のディレクトリ (「example.com/image.jpg」) 内で開いて css ファイルをロードし、画像を 100% 幅でロードできるようにしたいと考えています。

編集:明確にするために、内部にCSSを含むHTMLファイルをロードすることでこれを行う必要があることを認識しています。私の本当の質問は、ディレクトリ自体ではなく、CSSスタイルで内部のファイルをターゲットにする方法です。

4

1 に答える 1

1

htaccess の Rewrite ルールを使用して、CSS を指定できる HTML ファイルを介してそれらをロードしてみませんか? 画像だけでは CSS を使用できません。

解決策は、a) 写真をアクセスできる場所に移動することですが、ユーザーがアクセスするパスに直接移動することはできません。b) htaccess から一部の HTML コンテンツにパラメーターを渡す php ファイル (またはその他) を作成し、c)実際のファイルがあるフォルダーに直接アクセスしない限り、リダイレクトを行うhtaccessを作成します。そうしないと、リダイレクトの無限ループが発生します

したがって、fullscreen.php と .htaccess の 2 つのファイルを作成しました。次に、画像が存在する /img/ という名前のフォルダーを作成しました。

私は fullscreen.php をできるだけシンプルに保ちました。自由にスタイルを改善してください!

<?
if(isset($_GET['img']))
{
    $imageParam = $_GET['img'];
    echo "<html><head><style>html { background: url($imageParam) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }</style></head><body></body></html>";
}
else
{
    echo "Image not provided";
}

次に、.htaccess に条件付きの書き換えルールを追加しました。パスに /img/ が含まれている場合はルールを処理しないでください。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/img/
    RewriteRule ^(.*).png$ fullscreen.php?img=/img/$1.png [L,NC]
</IfModule>

これがあなたが探していたものだと思いますか?

于 2012-11-07T05:22:44.337 に答える