由于某种原因,我似乎无法包含我的bootstrap css文件。我对Python和Django很陌生,所以我肯定做错了。
阅读"静态文件"上的official Django explanation后管理我绝对不聪明:(。这是我的项目文件夹层次结构:
/projectname/
/appname/
/static/
| /appname/
| /css/
| | bootstrap.min.css
| | custom.css
| /img/
| /js/
|
/templates/
/includes/
head.html
footer.html
index.html
base.html
我从基础开始,所以我忽略了head.html
并尝试了base.html
,如此:
<title>{% block title %}{% endblock %}</title>
<!-- Bootstrap core CSS -->
{% load staticfiles %}
<link href="{% static 'static/appname/css/bootstrap.min.css' %}" rel="stylesheet">
没有运气。这是我的设置文件:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILE_DIRS ='/users/edchigliak/documents/projects/projectname/appname/static/'
就像我所理解的那样,有可能拥有一个全球性的&#34; &#39;静态文件位置&#39;您的所有项目都可以使用,以及每个应用程序&#34; &#39;静态文件位置&#39;只能由其所在的基本目录所在的应用程序使用。
任何帮助表示赞赏!
编辑:
这是我的urls.py
配置:
from django.conf.urls import url
from django.contrib import admin
from budgeteer.views import hello, hours_ahead, current_datetime
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
url(r'^index/$', current_datetime),
url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]
答案 0 :(得分:0)
我的快速猜测是你升级了一级。您的static
目录嵌套在appname
下。尝试将其向上移动并直接在浏览器中访问资源(http://example.com/static/appname/css/bootstrap.min.css)
我从未完成应用专用资源,所以如果这是目标,我很抱歉。
答案 1 :(得分:0)
我认为您需要在网址中添加以下内容:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
除非您使用Django服务器并且它提供静态文件。
根据你的Django文档你的应用程序结构是好的。
当您设置prod并开始通过Apache / Nginx / etc提供静态服务时,您将需要运行collectstatic。 现在它还不需要。
答案 2 :(得分:0)
如果您的静态链接仅以appname
开头?
即,而不是
<link href="{% static 'static/appname/css/bootstrap.min.css' %}" rel="stylesheet">
请尝试
<link href="{% static 'appname/css/bootstrap.min.css' %}" rel="stylesheet">
AFAIK,{% static %}
中的字符串是静态文件夹中静态文件的路径。
我没有足够的评论点,所以我在这里猜测。
答案 3 :(得分:0)
我有类似的问题(Django 1.10)。层次结构:
myapp
...
myapp
...
blog
migrations
templates
...
static
blog
style.css
因此,如果我添加<link href="{% static 'blog/css/bootstrap.min.css' %}" rel="stylesheet">
(style.css
位于dir&#39; blog / css&#39;),则所有款式都无法使用。
但是当我删除&#39; css&#39;:<link href="{% static 'blog/bootstrap.min.css' %}" rel="stylesheet">
(style.css
位于dir&#39;博客&#39;)时没关系。
可能对你有帮助!
答案 4 :(得分:-1)