Skip to main content
 首页 » 编程设计

python之django 将部分 url 添加到静态 css 路径

2025年05月04日34youxin

我的 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">