1

所以在过去的一个小时里,我一直在碰壁,似乎无法弄清楚为什么在我的模板被渲染时没有静态媒体(CSS、图像、JS 等)。有人可以帮我找出我需要进行调整的原因吗?以下是来自 Settings.py、Index.html 和样式表的片段,如果需要更多信息,请告诉我。

我的静态文件位于以下目录中:/djangoproject/website/static

Settings.py    -  Located /djangoproject/djangoprojectname/
STATIC_ROOT = os.path.normpath(os.path.join(PROJECT_ROOT,
"/static/"))

STATIC_URL = '../website/static/'

这是我的 index.html 中的一个片段,它应该使用 {{ STATIC_URL }} 调用 css 样式表

Index.html  - Location /djangoproject/website/templates/  
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css">

CSS 样式表的位置

style.css - Location /djangoproject/website/static/css/
4

2 回答 2

2

来自 Django 文档:

如果 {{ STATIC_URL }} 在您的模板中不起作用,您可能在渲染模板时没有使用 RequestContext。

作为一个简短的复习,上下文处理器将变量添加到每个模板的上下文中。但是,上下文处理器要求您在呈现模板时使用 RequestContext。如果您使用的是通用视图,这会自动发生,但在手工编写的视图中,您需要显式使用 RequestContext 要查看其工作原理并阅读更多详细信息,请查看Subclassing Context:RequestContext

于 2012-10-12T20:14:57.320 回答
1

在我看来,你正在设置STATIC_URL一个路径,当它应该设置为一个 URL 时。您需要将其设置为包含您的 css 文件的文件夹的网址,例如:

STATIC_URL = 'http://mydomain.com/static_files/'

尝试通过在浏览器中输入您希望它出现的地址来在线查找您的 CSS 文件。以这种方式找到 CSS 文件后,只需复制将您带到那里的根 URL。

于 2012-10-13T04:00:55.557 回答