在我的settings.py中我有以下内容:
PROJECT_DIR = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_DIR,'templates')
MEDIA_URL = '/templates/'
在urls.py中我有(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
我的base.html有以下指令:
<link media="screen" href="site_media/bat/design/css/bat.css" type="text/css" rel="stylesheet" />
首次进入应用程序(即http://localhost)后,这个样式表就可以正常加载了。但是,在随后的http请求中(在urls.py中为(r'^assist/bat/', include('assist.bat.urls'))
,对于另一个模板,此指令会导致以下错误:
未加载样式表http://localhost/assist/bat/site_media/bat/design/css/bat.css,因为其MIME类型“text / html”不是“text / css”。
正如你所看到的,这个css指令变成了一个完全不正确的相对url。如果我从该网址中删除 / assist / bat ,那么它的工作正常。那么如何才能将我的应用设置为不以这种方式变形url?
谢谢, 伊戈尔
答案 0 :(得分:3)
狂野猜测:href="site_media/bat/design/css/bat.css"
应该是href="/site_media/bat/design/css/bat.css"
,在它们前面没有斜线开始的网址会相对于当前网址解析。