gpt4 book ai didi

python - django - 夹层 - 静态文件 - 令人沮丧的错误

转载 作者:行者123 更新时间:2023-11-30 22:54:35 31 4
gpt4 key购买 nike

我是 Django 新手。我遇到了一些困难,我的静态文件未正确加载。

我的元素目录如下所示:

  • 我的新网站
    • 我的新网站
    • 首页
    • 静态
      • CSS
        • home.css
    • 模板
      • 首页
        • 索引
  • 管理.py
  • init.py

我在 myNewWebSite/settings.py 中配置了以下设置:

PROJECT_APP_PATH = os.path.dirname(os.path.abspath(__file__))
PROJECT_APP = os.path.basename(PROJECT_APP_PATH)
PROJECT_ROOT = BASE_DIR = os.path.dirname(PROJECT_APP_PATH)
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))

我的模板(templates/home/index.html):

{% load staticfiles %}
<html>
<head>
<link rel="stylesheet" type="text/css" href="{% static 'css/home.css' %}" />
</head>
<body>
<h1 id="test">Hello World, This is my first website in django</h1>
</body>
</html>

我在 static/css/home.css 中的样式:

body {
background-color: red;
}

#test {
border: 10px solid green;
}

我看不到这些更改的任何影响。仅显示消息 Hello World,...。输出显示如下:

[08/Jun/2016 20:36:04] "GET /myhome/ HTTP/1.1" 200 178
[08/Jun/2016 20:36:04] "GET /static/css/home.css HTTP/1.1" 301 0
[08/Jun/2016 20:36:04] "GET /static/css/home.css/ HTTP/1.1" 404 4930

我已在 settings.pylocal_settings.py(在夹层中)中设置了 DEBUG = False

问题是什么?

更新

使用 --insecure 参数运行开发服务器解决了该问题。

感谢GDorn

IF DEBUG = False THEN python manage.py runserver --insecure

最佳答案

如果 DEBUG=False,Django 不会提供静态文件。 --insecure 选项似乎是一种解决方法,或更准确地说,如果处于 Debug模式,开发服务器会自动不安全地运行。

正确的方法是在生产环境中运行python manage.pycollectstatic并将远程代理服务器(nginx、apache等)指向结果文件夹(可以是在设置中配置)。或者,您可以将静态数据放入 AWS S3 存储桶中。

无论如何,您都不应该在生产中运行 python manage.py runserver 元素。如果您尚未部署,只需使用 DEBUG=True 测试您的元素。

另一个选项是向您的 URL 配置添加静态 View 。

# urls.py

from os import path
from django.conf import settings
from django.conf.urls import url
from django.views.static import serve

urlpatterns = [
# your patterns here
]

urlpatterns += [url(
r'^static/(?P<path>.*)$', serve,
{'document_root': path.join(settings.BASE_DIR, 'static/public')})]

显然,路径必须与您的元素相匹配。但即使这种方法在生产中也不推荐。它只是规避了如果 DEBUG = False 则 Django 不提供静态服务的事实。每当您对静态文件进行更改时,它仍然要求您运行python manage.pycollectstatic

关于python - django - 夹层 - 静态文件 - 令人沮丧的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37712665/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com