Django向当前u添加静态路径

2024-03-28 10:56:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我的静态文件在应用程序目录的assets文件夹中。当我转到主页(/)时,静态文件从/assets/被很好地加载。如果我转到/house/,它会尝试从/house/assets/加载静态文件,这显然会导致文件没有加载,因为它们不在那里。在

这是settings.py中可能相关的部分:

...
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')
STATIC_PATH = os.path.join(BASE_DIR, 'assets')
STATIC_URL = os.path.join(BASE_DIR,'/assets/')

STATICFILES_DIRS = (
    STATIC_PATH,
)
TEMPLATE_DIRS = (
    TEMPLATE_PATH,
)
...

我使用如下方法加载模板中的静态文件:

^{pr2}$

这是应用程序该部分的URL文件:

urlpatterns = patterns('',
    url(r'^$', views.dashboard, name='dashboard'),
    url(r'^house/$', views.house, name='house'),
)

以下是观点:

def dashboard(request):
    return render_to_response('index.html')

def house(request):
    return render_to_response('house.html')

在过去的一个小时里,我一直在寻找解决这个问题的办法,但没有成功。我发现this post也在问类似的问题,但没有帮助。任何帮助将不胜感激。在


Tags: 文件path应用程序baseosdir静态static
1条回答
网友
1楼 · 发布于 2024-03-28 10:56:52

您应该将模板中的HTML标记从

<link href="assets/plugins/uniform/css/uniform.default.css"
      rel="stylesheet" type="text/css"/>

^{pr2}$

请注意相对URL前面的斜杠/。没有它,浏览器将假定assets目录是当前目录的子目录。有了它,它将始终从根目录开始。在

相关问题 更多 >