我的 CSS 位于
static/css/boostrap.css
我目前有 2 个 View 。登录 View 和仪表板 View 。
网址.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
url(r'^$', 'logins.views.login', name='login'),
url(r'^dashboard', 'dashboards.views.dashboard', name='dashboard'),
url(r'^admin/', include(admin.site.urls)),
)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
当我加载登录页面时,它会在
中查找静态文件/static/css/login.css
但是当我加载仪表板时,它会在
dashboad/static/css/bootstrap.css
login.html CSS 引用
<link href="static/css/signin.css" rel="stylesheet">
dashboard.html CSS 引用
<link href="static/css/dashboard.css" rel="stylesheet">
它会将 URL 的一部分添加到静态文件的路径中,我终究无法弄清楚如何阻止它。
设置.py
STATIC_URL = '/static/'
TEMPLATE_DIRS = (
'/Users/chrismeek/Documents/Python/virtual/src/static/templates',
)
if DEBUG:
MEDIA_URL = '/media/'
STATIC_ROOT = '/Users/chrismeek/Documents/Python/virtual/src/static/static-only'
MEDIA_ROOT = '/Users/chrismeek/Documents/Python/virtual/src/static/media'
STATICFILES_DIRS = (
'/Users/chrismeek/Documents/Python/virtual/src/static/static',
)
请您参考如下方法:
您正在使用相对 URL 链接到 Assets :因此它们总是从当前页面的目录开始。
确保始终使用前导斜杠:
<link href="/static/css/dashboard.css" rel="stylesheet">
更好的是,使用 Django 的 static 标签自动输出 STATIC_URL 的值,无论它是什么:
{% load static %}
...
<link href="{% static "css/dashboard.css" %}" rel="stylesheet">
