奇怪的CSS / Apache问题

时间:2009-05-20 09:08:38

标签: apache stylesheet

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

然而,我有些奇怪,因为某些原因似乎没有应用样式表。

我怀疑它可能是一个文件夹的权限问题,它无法访问或我做了一些Apache安装程序错误。

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

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

更多信息:看起来Apache正在收到Stylesheets的请求

  • [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/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
编辑:查看访问日志,CSS的GET实际上是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 :(得分: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服务器子进程中仍然会有多个应用程序实例。

答案 1 :(得分:0)

你可以在评论板中创建一个名为'media'的符号链接,它可能指向htdocs / media。

可替换地:

  1. 将htdocs / media移至..
  2. 或进入评审板代码并调整网址生成代码
  3. 或者如果您安装了mod_rewrite,则可以将请求重定向到正确的位置