我知道这是一个重复的问题,但我无法找到任何可以让我运行静态文件的答案。我使用的是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 的文件我的错误页面是默认的。
答案 0 :(得分:0)
对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)
答案 1 :(得分:0)
以下是我将Dj包含在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(app文件夹)中的第二个“
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在模板中包含/声明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
并重新加载/重新启动浏览器或删除缓存。