CSS 在 Django 应用程序中不工作,不知道哪里出了问题
CSS is not working in Django app, no clue what is wrong
我知道这是一个重复的问题,但我找不到任何答案可以为我创建静态文件 运行。我正在使用 Django 版本:1.10.5 和 python 版本:3.4.3...
我也看了官方文档,没能解决我的问题...
下面是我的项目结构:
myproject4
/myapp/
/__pycache__/
/migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
/myproject/
/__pycache__/
__init__.py
settings.py
urls.py
wsgi.py
/static/
/css/
hpage.css
robot.css
/images/
-- Images --
/js/
-- JavaScript Files --
/template/
hello.html
manage.py
这是我尝试过的所有方法:
{% load staticfiles %}
对于我的 hello.html 页面,就在顶部,
<link href="{%static 'css/hpage.css' %}" rel="stylesheet" />
<link href="{%static 'css/robot.css' %}" rel="stylesheet" />
用于在 hello.html 中链接我的 CSS 文件(它使用了 2 个 CSS 文件)。
我已经尝试 {{ STATIC_URL }}
做同样的事情以及我应该做的必要的事情,但没有找到运气。
当我使用 <style> </style>
标签时,css 工作得很好,但这不是我想要的。
settings.py:
DEBUG = False
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
#Other stuffs go here
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
'/static/',
)
urls.py:
from django.conf.urls import url,include
from django.contrib import admin
from myapp.views import hello,user_profile
from myapp import views
admin.autodiscover()
urlpatterns = [
url(r'^admin/$', admin.site.urls, name='admin'),
url(r'^hello/$', views.hello, name='hello'),
url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]
views.py:
from django.shortcuts import render, render_to_response
from django.template.context import RequestContext
def hello(request):
return render_to_response('hello.html')
def user_profile(request):
return render_to_response('user_profile.html')
请指导我哪里出错了...
提前谢谢你:)
编辑: 在我的 settings.py 文件中,DEBUG = False
因为我有一个名为 404.html 默认为我给出错误页面。
像下面那样对 urls.py
进行更改。并查看 documentation 作为参考
from django.conf.urls.static import static
urlpatterns = [
rl(r'^admin/$', admin.site.urls, name='admin'),
url(r'^hello/$', views.hello, name='hello'),
url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
这些是我将 CSS 包含到我的 Django 项目中所遵循的步骤:
首先,我在settings.py中添加了:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
urls.py(应用程序文件夹)中的第二个
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
- 复制了项目文件夹中的所有 CSS 个文件(与 manage.py 同级)
Include/Declare CSS 在模板中(我将我的包含在 base.html 中)
<head>
{% load static %}
<link rel="stylesheet" href="{% static 'assets/css/bootstrap-theme.css' %}" media="screen" >
<link rel="stylesheet" href="{% static 'assets/css/main.css' %}">
<link rel="stylesheet" href="{% static 'assets/css/style.css' %}">
</head>
运行:
python manage.py collectstatic
和reload/restart浏览器或删除缓存。
我知道这是一个重复的问题,但我找不到任何答案可以为我创建静态文件 运行。我正在使用 Django 版本:1.10.5 和 python 版本:3.4.3...
我也看了官方文档,没能解决我的问题...
下面是我的项目结构:
myproject4
/myapp/
/__pycache__/
/migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
/myproject/
/__pycache__/
__init__.py
settings.py
urls.py
wsgi.py
/static/
/css/
hpage.css
robot.css
/images/
-- Images --
/js/
-- JavaScript Files --
/template/
hello.html
manage.py
这是我尝试过的所有方法:
{% load staticfiles %}
对于我的 hello.html 页面,就在顶部,
<link href="{%static 'css/hpage.css' %}" rel="stylesheet" />
<link href="{%static 'css/robot.css' %}" rel="stylesheet" />
用于在 hello.html 中链接我的 CSS 文件(它使用了 2 个 CSS 文件)。
我已经尝试 {{ STATIC_URL }}
做同样的事情以及我应该做的必要的事情,但没有找到运气。
当我使用 <style> </style>
标签时,css 工作得很好,但这不是我想要的。
settings.py:
DEBUG = False
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
#Other stuffs go here
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
'/static/',
)
urls.py:
from django.conf.urls import url,include
from django.contrib import admin
from myapp.views import hello,user_profile
from myapp import views
admin.autodiscover()
urlpatterns = [
url(r'^admin/$', admin.site.urls, name='admin'),
url(r'^hello/$', views.hello, name='hello'),
url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]
views.py:
from django.shortcuts import render, render_to_response
from django.template.context import RequestContext
def hello(request):
return render_to_response('hello.html')
def user_profile(request):
return render_to_response('user_profile.html')
请指导我哪里出错了...
提前谢谢你:)
编辑: 在我的 settings.py 文件中,DEBUG = False
因为我有一个名为 404.html 默认为我给出错误页面。
像下面那样对 urls.py
进行更改。并查看 documentation 作为参考
from django.conf.urls.static import static
urlpatterns = [
rl(r'^admin/$', admin.site.urls, name='admin'),
url(r'^hello/$', views.hello, name='hello'),
url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
这些是我将 CSS 包含到我的 Django 项目中所遵循的步骤:
首先,我在settings.py中添加了:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static") STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
urls.py(应用程序文件夹)中的第二个
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
- 复制了项目文件夹中的所有 CSS 个文件(与 manage.py 同级)
Include/Declare CSS 在模板中(我将我的包含在 base.html 中)
<head> {% load static %} <link rel="stylesheet" href="{% static 'assets/css/bootstrap-theme.css' %}" media="screen" > <link rel="stylesheet" href="{% static 'assets/css/main.css' %}"> <link rel="stylesheet" href="{% static 'assets/css/style.css' %}"> </head>
运行:
python manage.py collectstatic
和reload/restart浏览器或删除缓存。