0

我一直在尝试安装 ReviewBoard 并且看起来一切顺利,我可以访问该站点和功能

但是,我很奇怪,由于某种原因似乎没有应用样式表。

我怀疑这可能是它无法访问的文件夹的权限问题,或者我犯了一些 Apache 设置错误。

是否有任何可能导致此问题的 Apache 配置?

有没有人遇到过类似的问题,而不仅仅是 ReviewBoard?

更多信息:看起来 Apache 正在接收对样式表的请求

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

  • [20/5/2009:10:00:36 +0100]“GET /reviewboard/media/rb/js/csshover2.htc?1242747706 HTTP/1.1”404 2514

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

编辑:查看访问日志,CSS 的 GET 实际上是 404-ing,因为路径应该是 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>
4

2 回答 2

0

Location 和 Alias 指令的 URL 不能是相对的,并且需要一个前导斜杠。因此你应该使用'/reviewboard/.......'。

FWIW,PythonInterpreter 指令不用于您对它的评论似乎表明您认为它确实如此。

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

该应用程序始终在同一个 Apache 实例中运行。PythonInterpreter 所做的是允许您控制它运行的每个 Apache 服务器子进程中的哪个 Python 子解释器。在您的情况下,它实际上是多余的,因为默认情况下,相同的子解释器用于同一 VirtualHost 下的所有 mod_python 托管应用程序。请注意,在每个 Apache 服务器子进程中仍然会有多个应用程序实例。

于 2009-07-17T00:14:38.030 回答
0

您可以在名为“媒体”的评论板中创建一个符号链接,该链接可能指向 htdocs/media。

或者:

  1. 将 htdocs/media 移至 ..
  2. 或进入审查板代码并调整 url 生成代码
  3. 或者如果您安装了 mod_rewrite,您可以将请求重定向到正确的位置
于 2009-05-20T10:56:23.753 回答