質問

ReviewBoard をインストールしようとしましたが、サイトと機能にアクセスできる限り、すべてうまくいったようです。

しかし、なぜかスタイルシートが適用されていないように見える違和感があります。

アクセスできないフォルダーのアクセス許可の問題、または私が行った Apache のセットアップエラーの可能性があると思います。

これを引き起こした可能性のある Apache 設定はありますか?

ReviewBoard に限らず、同様の問題を経験した人はいますか?

詳細情報:Apache がスタイルシートのリクエストを受信して​​いるようです

  • [20/May/2009:10:00:35 +0100] "GET /reviewboard/media/rb/css/common.css?1242747706 HTTP/1.1" 404 2512
  • [20/May/2009:10:00:35 +0100] "GET /reviewboard/media/rb/css/ie_hacks.css?1242747706 HTTP/1.1" 404 2514

  • [20/May/2009:10:00:36 +0100] "GET /reviewboard/media/rb/js/csshoover2.htc?1242747706 HTTP/1.1" 404 2514

  • [20/May/2009:10:00:36 +0100] "GET /reviewboard/media/rb/js/pngfix.htc?1242747706 HTTP/1.1" 404 2511

編集:アクセス ログを見ると、パスは reviewboard/htdocs/media/rb/css/* であるはずなので、CSS の GET は実際には 404 になっています (ただし、HTTP.conf にはこれに対応していると思われるエイリアスがあります)。

編集:.htaccess ファイルには以下が含まれます

<IfModule mod_expires.c>
  <FilesMatch "\.(jpg|gif|png|css|js|htc)">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
  </FilesMatch>
</IfModule>

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

編集:

httpd.conf セクションは次のようになります

<VirtualHost *:8080>
    ServerName FASKALLYRB
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/htdocs"

    # Error handlers
    ErrorDocument 500 /errordocs/500.html
    ErrorDocument 404 /errordocs/500.html

    # Serve django pages
    <Location "/">
        PythonPath "['C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/conf'] + sys.path"
        SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings
        SetEnv PYTHON_EGG_CACHE "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/tmp/egg_cache"
        SetHandler mod_python
        PythonHandler django.core.handlers.modpython
        PythonAutoReload Off
        PythonDebug Off
        # Used to run multiple mod_python sites in the same apache
        PythonInterpreter reviewboard_reviewboard
    </Location>

    # Serve static media without running it through mod_python
    # (overrides the above)
    <Location "reviewboard/media">
        SetHandler None
    </Location>
    <Location "reviewboard/errordocs">
        SetHandler None
    </Location>

    <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/htdocs">
        AllowOverride All
    </Directory>

    # Alias static media requests to filesystem
    Alias reviewboard/media "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/htdocs/media"
    Alias reviewboard/errordocs "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/reviewboard/htdocs/errordocs"
</VirtualHost>
役に立ちましたか?

解決

場所やエイリアスディレクティブのURLは相対的であると先頭のスラッシュを必要とすることはできません。したがって、あなたが使用する必要があります「/ reviewboard /.......'.

FWIW、PythonInterpreterディレクティブは、それに対するあなたのコメントは、あなたがそれがないと思う示しているようだ何のために使用されていません。

# Used to run multiple mod_python sites in the same apache
PythonInterpreter reviewboard_reviewboard

アプリケーションは常に同じApacheのインスタンス内で実行されます。何PythonInterpreterが行うことは、あなたがそれを実行する各サーバーのApacheの子プロセス内のどのPythonのサブインタプリタを制御できるようです。同じサブインタプリタがmod_pythonのは同じのVirtualHostの下でアプリケーションをホストされているすべてのために使用されるデフォルトであるように、それは、あなたのケースで、実際に冗長です。まだApacheサーバの子プロセスの各中に、アプリケーションの複数のインスタンスが存在することになることに注意してください。

他のヒント

おそらく htdocs/media を指す「media」という名前のシンボリックリンクをレビューボードに作成できます。

あるいは:

  1. htdocs/media を .. に移動します。
  2. または、レビューボードのコードに移動して、URL 生成コードを微調整します。
  3. または、mod_rewrite がインストールされている場合は、リクエストを適切な場所にリダイレクトできます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top