Вопрос

Я пытаюсь установить 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 мая/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 мая/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>
Это было полезно?

Решение

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

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

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

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

Другие советы

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

Альтернативно:

  1. переместите htdocs/media в ..
  2. или зайдите в код доски отзывов и настройте код генерации URL
  3. или если у вас установлен mod_rewrite, вы можете перенаправлять запросы в нужное место
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top