从主题上类似标题的数量来看,这似乎引起了很多混乱,但是尝试使用django开发服务器尝试在静态文件中可以找到的所有内容,我几乎放弃了希望!
因此,我的静态文件从C:/ Users / Dan / seminarWebsite / static /提供,其中我有用于图像,css等的子文件夹。
设置:
STATIC_ROOT = 'C:/Users/Dan/seminarWebsite/static/'
STATIC_URL = '/static/'
静态文件应用程序也处于活动状态。
网址:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
模板:
"{{ STATIC_URL }}images/vision.jpeg"
但是,只有一个断开的链接出现在此地址处:http://127.0.0.1:8000/homepage/images/vision.jpeg我认为它不应在该地址处(主页是要调用静态图像文件的页面的url名称)。
根据你到目前为止发布的内容,你似乎在关注的文档django.contrib.staticfiles
。我同意,文档可能很难遵循,尤其是对于django来说是新文档时。
我相信造成这种混乱的原因是django.contrib.staticfiles
有两种操作模式:
在使用开发服务器的开发阶段,它会动态搜索预定义目录中的静态文件,并在STATIC_URL
对于部署,它有助于将静态文件整理到单个目录(使用定义STATIC_ROOT),以便可以使用适用于静态文件的Web服务器托管静态文件。排序是使用进行的python ./manage.py collectstatic
。
这是有关如何启动和运行的快速摘要。我没有机会尝试一下,所以可能有错误。希望这可以帮助你入门,至少可以帮助你理解文档。如有疑问,请参阅文档。
在开发服务器上托管静态文件
1. 请确保你有'django.contrib.staticfiles
‘在INSTALLED_APPS
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'C:/Users/Dan/seminarWebsite/static/',
)
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
DEBUG = True
进入settings.py
。如果你运行开发服务器(./manage.py runserver)
,则应该可以通过http://localhost:8000/static/images/vision.jpeg
(提供服务C:/Users/Dan/seminarWebsite/static/images/vision/jpeg)
访问文件。
链接到模板中的静态文件
有两种方法可以为你的静态文件获取正确的链接-使用staticfiles template标记,并使模板STATIC_URL可访问。由于你尝试了后者,因此我们会坚持下去。
确保你已'django.core.context_processors.static'进入TEMPLATE_CONTEXT_PROCESSORS
。如果你还没有重新定义,TEMPLATE_CONTEXT_PROCESSORS
那就无事可做,因为默认情况下应该在那里。
确保在渲染模板时使用RequestContext。例:
from django.template import RequestContext
# ...
def some_view(request):
# ...
return render_to_response('my_template.html', {
"foo" : "bar", # other context
}, context_instance = RequestContext(request))
你现在应该可以在自己的服务器中使用以下内容my_template.html:
<a href="{{ STATIC_URL }}images/vision.jpeg" />
在生产服务器上托管静态文件。
如果你需要提供的所有静态文件都存储在该目录(C:/Users/Dan/seminarWebsite/static)
中,那么你就快到了。只需将你的Web服务器配置为在该目录上/static/
(或任何你设置的目录)上托管该目录,STATIC_URL就可以了。
如果文件分散在不同的目录中和/或应用程序特定的静态文件中,则需要整理它们。
STATIC_ROOT
为要存储整理文件的目录。./manage.py collectstatic
进行整理。STATIC_ROOT)/static/
(或设置为该目录STATIC_URL)。问题内容: 我无法显示我的静态文件。我尝试了各种设置和目录配置等,但是它们只是显示为404。我已经安装了debug_toolbar,所以知道STATIC_URL正在到达我的请求上下文。 显示/ static的目录结构(我还将目录和用户放置在餐应用文件夹中,只是为了尝试一下。 Settings.py(一些重要的设置,尽管我已经尝试了其他各种设置): 在base.html中呈现 问题答案: 这是dja
问题内容: 我正在使用,我的django应用的结构如下 的是 在我尝试使用它为: 但是它没有加载并给出错误 我跑去收集所有静态文件。 为什么要加载CSS文件?是否缺少任何配置? 请提出建议。 问题答案: 根据文档正确的方式来加载静态文件是 这会工作
问题内容: 我混淆了STATIC_ROOT和STATICFILES_DIRS 实际上,我并不是很了解STATIC_ROOT的实用程序。我认为这是我必须放置公用文件的目录。该目录用于生产,这是collectstatic将放置(收集)静态文件的目录。 STATICFILES_DIRS是我需要的。 由于我处于开发环境中,因此对我来说,解决方案是不使用STATIC_ROOT(或指定其他路径)并在STATI
问题内容: 我正在尝试将我一直在工作的Django网站从开发服务器阶段移至真正的托管环境。目前,我只是在我的个人计算机上托管。我已经安装了Apache和mod-wsgi,但是在获取静态文件时遇到了问题。我很确定这与Apache有关。这是我的站点配置文件: 我正在尝试从我使用静态别名的目录中托管文件。当我尝试加载网站时,所有内容都出现了,但是没有CSS。另外,当我访问我的URL www.server
问题内容: 有没有一种简单的方法可以关闭Django开发服务器中的静态文件缓存? 我正在使用标准命令启动服务器: 我已配置为从Django项目的目录提供静态文件。我还有一个中间件类,该类将标头设置为开发用,但是这似乎只会影响不在目录中的URL 。 问题答案: 假设您正在使用,它看起来并不像- 但是编写自己的仅调用视图,添加Cache-Control标头应该非常容易。
问题内容: 这个问题已经被回答了好几次了,我已经看到了几乎所有相关的帖子,但是无法加载CSS文件。我在我的项目中有以下结构:中,我有以下代码: 在urls.py中,我有以下代码: 我在模板中使用它 我在做什么错?我应该做什么?例如应该在中添加任何内容?或在的设置中?请假设我是一个绝对的初学者。我真的需要一个答案。谢谢。 问题答案: 什么都不做的装饰器类如下所示: 然后您可以正常应用它: