I've been attempting to install ReviewBoard and all sorts of appears like it's gone well, because I'm able to access the website and functionality

However, I've strangeness where no style sheet seems to become applied for whatever reason.

I suspect it might be a permissions problem on the folder it can't access or some Apache setup error I've made.

Can there be any Apache configuration that may have triggered this?

Has anybody experienced any similar problems not only for ReviewBoard?

Further info: It appears like Apache gets the request the 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

EDIT: Searching in the access logs the GET for that CSS is really 404-ing because the path ought to be reviewboard/htdocs/media/rb/css/* (although there's an alias within the HTTP.conf which i assumed worked with this particular.

EDIT: The .htaccess file consists of

<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>

EDIT:

The httpd.conf sections appears like this

<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>

You can create a symlink in reviewboard known as 'media' that points at htdocs/media possibly.

Alternatively:

  1. move htdocs/media to ..
  2. or enter in the reviewboard code and tweak the url producing code
  3. or for those who have mod_rewrite installed you can redirect demands right place

The URL for Location and Alias directives can not be relative and requires a number one slash. Thus you ought to be using '/reviewboard/.......'.

FWIW, the PythonInterpreter directive is not employed for what your comment against it appears to point you believe it will.

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

The applying is definitely run within same Apache instance. What PythonInterpreter does is permit you control which Python sub interpreter within each Apache server child process it runs. It's really redundant inside your situation, because the same sub interpreter is automatically employed for all mod_python located programs underneath the same VirtualHost. Observe that there it's still multiple cases of the applying, on in each one of the Apache server child processes.