[英]django not serving static files
我正在使用Django==1.5.5
和我的django應用程序結構為
--project/
----project/
------settings.py
------urls.py
----app1/
------models.py
------views.py
----staticfiles/
------style.css
----static/
------admin/
--------js/
--------css/
------style.css
----templates/
------header.html
------post.html
------footer.html
----manage.py
/project/settings.py
是
import os
DEBUG = False
TEMPLATE_DEBUG = DEBUG
PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
MEDIA_ROOT = ''
MEDIA_URL = ''
SITE_ROOT = PROJECT_ROOT
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'staticfiles'),
)
TEMPLATE_DIRS = (
os.path.join(SITE_ROOT, 'templates'),
)
在header.html
我嘗試使用它:
<head>
<title>My Site</title>
{% load static from staticfiles %}
<link rel="stylesheet" href="{% static 'style.css' %}">
</head>
但它沒有加載mysite.com/static/style.css
並給出錯誤404
我運行python manage.py collectstatic
來收集所有靜態文件。
為什么加載css文件? 任何配置缺失?
請建議。
我遇到了同樣的問題,但我發現的答案都沒有。 事實證明,必須正確設置一些部分才能使靜態文件正常工作。 注意:我正在使用django 1.6,這個解決方案是用於開發而不是部署。
設置靜態文件目錄
django-admin.py startproject $site_name
mkdir $site_name/static
mkdir $site_name/static/css
mkdir $site_name/static/javascript
mkdir $site_name/static/images
你的文件夾應該是這樣的
$site_name/
manage.py
$site_name/
__init__.py
settings.py
urls.py
wsgi.py
static/
css/
javascript
images/
編輯$ site_name / $ site_name / setting.py文件並添加
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS =( os.path.join(STATIC_ROOT, 'css/'),
os.path.join(STATIC_ROOT, 'javascript/'),
os.path.join(STATIC_ROOT, 'images/')
)
編輯$ site_name / $ site_name / urls.py並添加
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
使用靜態網址
{% load staticfiles %}
<a href="{% static "banner.png" %}">
僅用於開發。 在settings.py文件中設置DEBUG = True,並在INSTALLED_APPS中添加“django.contrib.staticfiles”。 接下來,將這些代碼行添加到項目的settings.py文件中:
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
根據docs加載靜態文件的正確方法是
{% load staticfiles %}
<img src="{% static 'my_app/myexample.jpg' %}" alt="My image"/>
這會奏效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.