4

この質問は何度か聞かれましたが、調べてみましたが、まだ解決できません。私のビューファイルの1つに、次のようなものがあります(cssを参照)。

link rel="stylesheet" type="text/css"  href="/application/views/screen.css"

cssファイルは次の場所にあります。

- www
  - application
    - view
      - css
        - screen.css
  - system

また、同じフォルダにcssを設定して、-www直接使用しようとしました。

link rel="stylesheet" type="text/css"  href="css/screen.css"

私は地元で開発しているので、私のベースurlはに設定されています。""これは問題ですか?私はwampサーバーを使用しています。

では、何が問題なのでしょうか。誰か助けてもらえますか?

4

4 に答える 4

6

.htaccessファイルを「すべて拒否」に設定してセキュリティ上の理由で保護されているため、CSSファイルまたはブラウザに提供するファイルをアプリケーションフォルダに配置することはできません。CSS、JS、画像ファイルなどは次のようにする必要があります。アプリケーションフォルダの外。

CSSファイルを「www」フォルダの「css」というフォルダに入れて、「application」または「system」内に配置しないようにします。次に、次のものを使用していることを確認してください(先頭のスラッシュに注意してください。絶対URLを示します)。

href="/css/screen.css"

代わりにこれを使用してください:

# If your default controller is something other than
# "welcome" you should probably change this
RewriteCond $1 !^(index\.php|css)
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2012-12-09T01:40:07.167 に答える
1

すべてのアセットファイル(画像、js、cssなど)をサイトのルート(アプリケーションフォルダーの外)にある別のフォルダーに配置する必要があります。'files'というフォルダーを作成し.htaccess、サイトのルートにあるファイルに次の行を追加します。

# Allow these directories and files to be displayed directly:
# - index.php (DO NOT FORGET THIS!)
# - robots.txt
# - favicon.ico
# - Any file inside of the files/ - js/, or css/ directories
RewriteCond $1 ^(index\.php|files)

このようにして、URLを介してそのファイルフォルダ(およびその中のファイルフォルダ)に直接アクセスできます。

于 2012-12-09T14:31:39.567 に答える
1

猫の皮を剥ぐにはいくつかの方法があることを念頭に置いてください。

htaccessをいじることなくクイックフィックス。base_url()またはsite_url()を使用します。

<link rel="stylesheet" type="text/css"  href="<?php echo base_url();?>assets/css/screen.css">

そして、次のファイル構造を使用します。

  • www

    • 応用

      • ビュー
      • (...)
    • システム

    • 資産
      • css
        • screen.css
于 2012-12-09T01:48:04.650 に答える
1

私もWindowsで同じ問題に直面しました。Macでは簡単なことでした。URLから除外しようとしたindex.phpとき、私は直面し400 Bad Request Errorました。後で、以下のようにスラッシュRewriteRule index.phpの前に付けることで、これを修正しました

RewriteRule ^(.*)$ index.php/$1 [L]

RewriteRule ^(.*)$ /index.php/$1 [L]

今後、別の問題に直面しました: アセット/静的ファイルを読み込めませんでした。また、ルートディレクトリレベルにアセットフォルダがありました。RewriteCondに「assets」を追加してrewriteRuleの適用から除外するような解決策を見ました。お気に入り、

RewriteCond $1 !^(index\.php|assets)       #It does not work for me

しかし、それは機能しません。404notfoundエラーが発生しました。後で、私はこれに対する解決策を見つけました、

RewriteCond $1 !^(index\.php|\/assets)     #Working!

そして、MyRewriteスクリプトは次のとおりです。

  RewriteEngine on
  RewriteCond $1 !^(index\.php|\/assets)
  RewriteRule ^(.*)$ /index.php/$1 [L]

うまくいけば、これは助けになり、たくさんの時間を節約できます!:)

于 2017-10-01T06:20:38.267 に答える