0

開発のために、「staging」というサブディレクトリにサイトをセットアップしました。すべての JS および CSS 参照は、たとえば /css/styles.css を指しています (css の前の / に注意してください)。

発生する問題は、/staging/contact/ などのディレクトリにいるときに、連絡先ページが "/staging/contact/css/styles.css" を読み込もうとしたときに、"/staging/css/styles. cs」。

htaccess 経由でベースを書き直そうとしましたが、うまくいきません。私は使用しています:

RewriteEngine On
RewriteBase /staging/

連絡先ページでソースを表示すると (CSS/JS に読み込まれていないため)、まだ /staging/contact/css/styles.css を参照しています。ここで私は何を間違えましたか?:/

4

2 に答える 2

2

このコードをDOCUMENT_ROOT/.htaccess(/staging/ の上のレベル)に配置します。

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/staging/ [NC]
RewriteRule \.(?:jpe?g|gif|bmp|ico|png|tiff|css|js)$ /staging%{REQUEST_URI} [L,R=301,NC]

次に、css/JS URL を変更する必要はなく<BASE>、HTML でタグを使用する必要もありません。

于 2013-10-11T07:16:14.457 に答える
1

スクリプトとスタイルは、おそらく相対 URI を使用してリンクされています。例えば:

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

ページのヘッダーにベースを追加する必要があります。

<base href="/staging/" />

または、どちらも選択できない場合は、追加の書き換えルールを htaccess ファイルの先頭に追加してみてください。

RewriteBase /staging/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(css|js)/([^/]+)\.(js|css)$ $2/$3.$4 [R=301,L]

ステージング中の htaccess ファイル。

于 2013-10-11T05:28:57.760 に答える