Domanda

Ho provato a installare ReviewBoard e sembra che tutto sia andato bene, in quanto riesco ad accedere al sito e alle funzionalità

Tuttavia, ho delle stranezze in cui nessun foglio di stile sembra essere applicato per qualche motivo.

Sospetto che potrebbe trattarsi di un problema di autorizzazioni su una cartella a cui non è possibile accedere o di qualche errore di configurazione di Apache che ho commesso.

Esiste qualche configurazione di Apache che potrebbe aver causato questo?

Qualcuno ha riscontrato problemi simili non solo per ReviewBoard?

Ulteriori informazioni:Sembra che Apache stia ricevendo la richiesta per i fogli di stile

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

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

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

MODIFICARE:Osservando i log di accesso, il GET per il CSS è in realtà 404 poiché il percorso dovrebbe essere reviewboard/htdocs/media/rb/css/* (anche se c'è un alias nell'HTTP.conf che presumo si occupasse di questo.

MODIFICARE:Il file .htaccess contiene

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

MODIFICARE:

Le sezioni httpd.conf hanno questo aspetto

<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>
È stato utile?

Soluzione

L'URL per le direttive Posizione e Alias ​​non può essere relativo e necessita di una barra iniziale.Quindi dovresti usare '/reviewboard/.......'.

FWIW, la direttiva PythonInterpreter non viene utilizzata per ciò che il tuo commento sembra indicare che pensi che faccia.

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

L'applicazione viene sempre eseguita all'interno della stessa istanza di Apache.Ciò che fa PythonInterpreter è consentirti di controllare quale sottointerprete Python all'interno di ciascun processo figlio del server Apache che esegue.In realtà è ridondante nel tuo caso, poiché lo stesso interprete secondario viene utilizzato per impostazione predefinita per tutte le applicazioni ospitate mod_python nello stesso VirtualHost.Tieni presente che ci saranno ancora più istanze dell'applicazione, in ciascuno dei processi figli del server Apache.

Altri suggerimenti

Si potrebbe fare un collegamento simbolico in Reviewboard chiamato 'media' che punta a htdocs / supporti forse.

In alternativa:

  1. mossa htdocs / media per ..
  2. o andare nel codice Reviewboard e modificare il codice di generazione url
  3. o se si è mod_rewrite installato è possibile reindirizzare le richieste al posto giusto
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top