我在/ecomstore/static/css.css
我已经通过
将css链接到head标签中的base.html<link rel="Stylesheet" type="text/css" href="/static/css.css" />
我的urls.py文件:
from django.conf.urls import include, url
from django.contrib import admin
from ecomstore import settings
from django.contrib.staticfiles import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^catalog/','preview.views.home'),
# url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
# { 'document_root' : '/home/yogesh/ecomstore/static' })
]
urlpatterns = [
# other commented code here
url(r'^catalog/?','preview.views.home'),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{ 'document_root' : '/home/yogesh/ecomstore/static/' }),
]
Settings.py文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 'DIRS': [os.path.join(CURRENT_PATH, 'templates')],
'DIRS': [os.path.join(BASE_DIR, 'templates/')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
静态设置:
STATIC_URL = '/static/'
STATIC_ROOT = "/home/yogesh/ecomstore/static/"
尽管有这些东西,我不知道为什么我的css模板没有加载。同样在终端我得到以下表示某种错误。
[24 / Nov / 2015 11:11:36]“GET /static/css.css HTTP / 1.1”404 1735
答案 0 :(得分:0)
使用{% static %}
模板标记:
{% load staticfiles %}
在您的设置中配置静态文件目录,不要在urlconf中对路径进行硬编码:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
'/var/www/static/',
)
确保您在开发过程中提供静态文件:
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
检查django进程是否可以读取静态文件目录/home/yogesh/ecomstore/static/
。
答案 1 :(得分:0)
将您的文件存储在/ecomstore/static/ecomstore/css.css
而不是/ecomstore/static/css.css
,因为Django默认显示在所有文件夹<app_name/static/<app_name>
中,因此您不必在STATICFILES_DIRS
中拥有这些文件夹变量。
Django文档:
将静态文件存储在应用中名为static的文件夹中。对于 例如my_app / static / my_app / myimage.jpg。
阅读本文了解更多信息 信息和配置项目:Managing static files
您在模板配置中也犯了一个错误。使用os.path.json
功能时,您不必在最后一个文件夹中拥有/
。只需使用os.path.join(BASE_DIR, 'templates')
关于提供静态文件,如果你使用django内置服务器,你不必配置任何东西,Django默认提供它们。但是,如果您使用gunicorn或uWSGI,是的,您必须将项目配置为提供静态文件。
您必须在主<project_name>/<project_name>/urls.py
文件中添加:
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)
现在,您的服务器将根据您在STATIC_URL
文件中配置的<project_name>/<project_name>/settings.py
来提供静态文件。
阅读本文以获取更多信息:Serving static files during development