Django找不到css(静态文件夹)

时间:2015-12-27 17:13:54

标签: python css django python-import

我正试图找到一种方法,如何告诉Django存储static cssstatic文件的位置。问题是它无法找到settings.py文件夹。我已经设置了STATIC_URL = '/static/' INSTALLED_APPS = ( ... 'django.contrib.staticfiles', ) 文件,但没有帮助。

SETTINGS.PY:

...
...

<title>Rozcestník</title>

<!-- Bootstrap core CSS -->
  {% load static %}
  <link href="{% static "css/bootstrap.min.css" %}" rel="stylesheet">
...

base.html文件:

{{1}}

项目结构: enter image description here

问题出在哪里?

3 个答案:

答案 0 :(得分:3)

我不太喜欢你的目录(结构)。

如果文件夹“web”是一个应用程序而“dedo”是一个带有设置的文件夹,那么你的app文件夹中就不能有“static”和“templates”文件夹。

它应该是:

dedo
  __init__.py
  settings.py
  urls.py
  views.py
static
  css
    bootstrap.min.css
templates
  base.html
  index.html
web
  migrations
  __init__.py
  admin.py
  models.py
  tests.py
  views.py
db.sqlite3
manage.py

在你的setttings.py中,你需要写下这个:

STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'static'),
)

STATIC_URL =通过浏览器访问您的静态文件

STATICFILES_DIRS = Django将查找静态文件

重要:

如果您要通过适当的Web服务器(nginx,apache,...)使用WSGI(gunicorn,modwsgi,...)部署您的Web应用程序,则

STATIC_ROOT =

“python manage.py collectstatic”或“python3.X manage.py collectstatic”是用于将静态文件从STATICFILES_DIRS(加上/ admin /的静态文件)复制到STATIC_ROOT的命令,这意味着STATIC_ROOT不能是与STATICFILES_DIRS相同。

答案 1 :(得分:1)

我猜你没有使用&#34;收集静态&#34; 操作。

在你的shell / CMD中运行: python manage.py collectstatic


如果它没有解决您的问题,请发布您遇到的错误。

答案 2 :(得分:1)

此部署的一个问题是,一旦通过AWS EB发布,静态文件 (如style.css)不会被读取,页面缺乏样式。文件和论坛 指出这是Django的部署方式还不太清楚 并且必须指示Web服务器使用这些文件。

一旦STATIC_ROOTSTATIC_URLproject/settings.py内部定义,并且 在urlpatterns内的project/urls.py中添加了此问题。

STATIC_ROOT 包含从静态文件提供服务的路径。
collectstatic 会将应用和管理文件放入STATIC_ROOT中。
当浏览器发出请求时, STATIC_URL 拥有指向STATIC_ROOT的链接。
+ static(设置[...] 告诉Web服务器要使用STATIC_URL。

我有一个功能完整的项目,其中包含EB部署说明:https://github.com/nandoabreu/django-polls