Странная проблема CSS / Apache - PullRequest
0 голосов
/ 20 мая 2009

Я пытался установить ReviewBoard, и, похоже, все прошло хорошо, насколько я могу получить доступ к сайту и его функциональности

Тем не менее, у меня есть странность, когда по каким-то причинам таблица стилей не применяется.

Я подозреваю, что это может быть проблема с правами доступа к папке, к которой у нее нет доступа, или какая-то ошибка установки Apache, которую я сделал.

Существует ли какая-либо конфигурация Apache, которая могла бы вызвать это?

Кто-нибудь испытывал подобные проблемы не только для ReviewBoard?

Дополнительная информация: похоже, что Apache получает запрос на таблицы стилей

  • [20 / май / 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 / май / 2009: 10: 00: 36 +0100] "GET /reviewboard/media/rb/js/csshover2.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

РЕДАКТИРОВАТЬ: Глядя на журналы доступа, GET для CSS на самом деле 404-й, поскольку путь должен быть reviewboard / htdocs / media / rb / css / * (хотя в 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>

Ответы [ 2 ]

0 голосов
/ 17 июля 2009

URL-адрес для директив Location и Alias ​​не может быть относительным и должен начинаться с косой черты. Таким образом, вы должны использовать '/reviewboard/.......'.

FWIW, директива PythonInterpreter не используется для того, что кажется, что ваш комментарий против этого указывает на то, что вы думаете.

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

Приложение всегда запускается в одном и том же экземпляре Apache. PythonInterpreter позволяет вам контролировать, какой субинтерпретатор Python внутри каждого дочернего процесса сервера Apache, который он запускает. Это на самом деле избыточно в вашем случае, так как один и тот же субинтерпретатор по умолчанию используется для всех размещенных приложений mod_python в том же VirtualHost. Обратите внимание, что в каждом из дочерних процессов сервера Apache все еще будет несколько экземпляров приложения.

0 голосов
/ 20 мая 2009

Вы можете создать символьную ссылку в обзоре под названием 'media', которая, возможно, указывает на htdocs / media.

В качестве альтернативы:

  1. Переместить htdocs / media в ..
  2. или перейдите в код обзора и настройте код, генерирующий URL
  3. или, если у вас установлен mod_rewrite, вы можете перенаправить запросы в нужное место
...