我对访问django的静态文件有些怀疑。
版本:1.8.4 settings.py中的VAR:
`BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# insert your TEMPLATE_DIRS here
# os.path.join(BASE_DIR, 'templates').replace('\\', '/')
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]`
设置STATICFILES_DIRS,并将django.template.context_processors.static
添加到TEMPLATES中的context_processors,这样我就可以在模板中使用'static'标签了。一个src标签,如:src =“{{STATIC_URL}} js / example.js”或src =“{%static'js / example.js'%}”。将为http://myhost/static/js/example.js生成一个网址。
如果我想在app目录中加载静态文件,我该怎么办?正如我对django-official-doc的理解,
STATICFILES_FINDERS =( 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'django.contrib.staticfiles.finders.FileSystemFinder', )
查找程序将默认搜索app / static,但如果 app / templates / index.html 中的 src =“static / js / example.js”,服务器将返回404代码。直到我添加
urlpatterns + = staticfiles_urlpatterns()
到app / urls.py。
我想知道的是: 为什么404?当加载静态文件形式app / static而没有urlpatterns + = staticfiles_urlpatterns()。 2.如果我想在app / static中获取静态文件,如何以灵活的方式编写url?因为 {{STATIC_URL}}或{%static%} 都指向项目/静态。
我花了好几个小时阅读stackoverflow上的相关帖子。任何帮助都会非常感激。
答案 0 :(得分:0)
在项目settings.py
STATIC_URL = '/public/static/'
STATICFILES_DIRS = (
location('static'),
)
STATIC_ROOT = location('public/static')
然后你应该能够访问网址中的内容,如:
http://127.0.0.1:8000/public/static/js/bootstrap.min.js
假设你有一个名为MyProject
的项目
前提是您必须有一个名为
Myproject->public->static->js->bootstrap.min.js
在项目目录中。
在您的网页中,您可以通过以下方式简单地引用它:
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
希望这个想法非常明确。如果怀疑还原。