Apache: Les chemins relatifs sont ajoutés à l'URL actuelle au lieu d'ajouter au nom de base.

Je suis un débutant dans des serveurs Web, alors soyez prudent:

J'ai installé un nouveau serveur apache2 dans le système Mint (Ubuntu-base, Que signifie aussi Debian-based). J'ai aussi installé le backend Django et expansion wsgi_mod. Je serve juste avec localhost pour tester.

Interface administratrice Django (Disponible C.

localhost/admin/

) Fait référence à votre fichier css avec une URL relative, par exemple

static/admin/base.css

. Maintenant je vois dans mes magazines apache, que le navigateur essaie de l'obtenir à l'URL complète

localhost/admin/static/admin/base.css

, qui n'existe pas.

J'ai eu l'impression que les chemins relatifs sont toujours résolus en les ajoutant au nom de base et non au courant URL. (Ce qui conduirait à

localhost/static/admin/base.css

, où réellement le fichier).

J'avais tort (Et mes paramètres Django Convertir), Ou j'ai mal configuré mon serveur Apache? Le prochain sera mon fichier 000 Par défaut dans le dossier disponible pour le site:

<virtualhost *:80="">
ServerName localhost
ServerAlias 127.0.1.1
ServerAdmin webmaster@localhost

DocumentRoot "/home/web/http/80/localhost/htdocs"
ErrorLog "/home/web/http/80/localhost/logs/error.log"
CustomLog /home/web/http/80/localhost/logs/access.log combined
LogLevel warn

WSGIScriptAlias / /home/web/http/80/localhost/lib/app.wsgi

Alias /robots.txt /home/web/http/80/localhost/htdocs/robots.txt
Alias /favicon.ico /home/web/http/80/localhost/htdocs/favicon.ico
Alias /images /home/web/http/80/localhost/htdocs/images
Alias /static /home/web/http/80/localhost/htdocs/static


<directory 80="" home="" htdocs="" http="" localhost="" web=""></directory>
AllowOverride All
Order allow,deny
allow from all

</virtualhost>

Je n'ai rien changé dans apache2.conf, ports.conf, envar ou wsgi.conf. À tester mon fichier .htaccess Aussi vide.

Pertinent (?) Une partie de la mienne. settings.py Ressemble à ça:

STATIC_ROOT = '/home/web/http/80/localhost/htdocs/static/'
STATIC_URL = 'static/'
# Additional locations of static files
STATICFILES_DIRS = ()
ROOT_URLCONF = 'osmmap.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'osmmap.wsgi.application'

Tandis que c'est le mien urls.py:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Examples:

url(r'^test/', 'testapp.views.home'),

# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
)
Invité:

Babette

Confirmation de:

J'ai eu l'impression que les chemins relatifs sont toujours résolus en les ajoutant au nom de base et non au courant URL.

C'est juste.

(Ce qui conduirait à

localhost/static/admin/base.css

, où réellement le fichier).

il

ne pas

droit.

Les URL relatives sont créées en supprimant tout ce qui suit la finale

/

De la base URL, puis ajoutant un parent URL. Alors

[url=http://localhost/admin/]http://localhost/admin/[/url]

rien n'a rien d'après la finale

/

Et rien ne perdrait avant d'ajouter

static/admin/base.css

.

Par conséquent créé URL

[url=http://localhost/admin/static/admin/base.css]http://localhost/admin/static/admin/base.css[/url]

Construit à droite.

Vous aurez besoin du développeur d'applications pour résoudre ce problème.

Giselle

Confirmation de:

Vous voulez que votre chemin statique soit relatif à l'hôte:

STATIC_URL = '/static/'

Pour répondre aux questions, connectez-vous ou registre