我一直在尝试安装 ReviewBoard,一切看起来都很顺利,只要我可以访问该网站和功能

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

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

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

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

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

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

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

  • [20/5/2009:10:00:36 +0100]“获取/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>
有帮助吗?

解决方案

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 服务器子进程中仍然存在应用程序的多个实例。

其他提示

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

或者:

  1. 将 htdocs/media 移至 ..
  2. 或者进入评论板代码并调整 url 生成代码
  3. 或者如果您安装了 mod_rewrite 您可以将请求重定向到正确的位置
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top