Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.7中的多个设置文件_Python_Django_Django Staticfiles_Django Settings_Django 1.7 - Fatal编程技术网

Python Django 1.7中的多个设置文件

Python Django 1.7中的多个设置文件,python,django,django-staticfiles,django-settings,django-1.7,Python,Django,Django Staticfiles,Django Settings,Django 1.7,我正在尝试将django 1.7项目更改为包含多个设置文件的设置文件夹,而不仅仅是一个settings.py文件。 我不知道如何正确配置静态文件的位置。我错过了什么?我的网站不再正常工作 dev_settings.py from unipath import Path PROJECT_DIR = Path(__file__).ancestor(3) MEDIA_ROOT = PROJECT_DIR.child("media") STATIC_ROOT = PROJECT_DIR.child("

我正在尝试将django 1.7项目更改为包含多个设置文件的设置文件夹,而不仅仅是一个settings.py文件。 我不知道如何正确配置静态文件的位置。我错过了什么?我的网站不再正常工作

dev_settings.py

from unipath import Path

PROJECT_DIR = Path(__file__).ancestor(3)
MEDIA_ROOT = PROJECT_DIR.child("media")
STATIC_ROOT = PROJECT_DIR.child("static")
STATICFILES_DIRS = (
    PROJECT_DIR.child("static"),
)
TEMPLATE_DIRS = (
    PROJECT_DIR.child("templates"),
)
STATIC_URL = '/static/'
home.html

{% load static from staticfiles %}
<a href="{% url 'bank:bank_home' %}"><img src="{% static 'images/logo-bank.png' %}" class="img-responsive navlogo" alt="My Bank"></a>
<script src="{% static 'js/bootstrap_js/bootstrap.min.js' %}"></script>
{%loadstaticfromstaticfiles%}

与静态文件相关的重要设置如下:

  • STATIC\u ROOT
    -定义通过
    collectstatic
    管理命令聚合静态文件的完整路径(例如/var/www/project/staticfiles/
  • STATIC\u URL
    -定义Django将在模板中替换的URL,以避免您必须对其进行硬编码(通常为/STATIC/
  • STATICFILES\u DIRS
    -一个元组或文件路径列表,Django也可以从中聚合文件,而不与任何特定应用程序关联(默认情况下,Django将自动查找并聚合任何已安装应用程序的
    static
    目录下的所有文件-有关详细信息,请参阅
    STATICFILES\u FINDERS
    )。请注意,这不应包括由
    STATIC_ROOT
    定义的路径;该路径是Django复制您的文件以提供服务的路径
其他设置默认值通常一开始就很好(Django 1.7的文档是)。确保在
python manage.py runserver
之前运行
python manage.py collectstatic
,以便将静态文件聚合到由
static\u ROOT
定义的位置

通过更改
manage.py
中的以下行,可以设置项目设置文件的位置:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my.project.base_settings")
或者,如果要使用不同的设置(在dev等中),可以在运行
manage.py
时传入
--settings


请注意,使用的点表示法对应于项目目录结构中的*.py文件,与
manage.py
相关。因此,上面第一个示例中的文件位置将位于
my/project/base\u settings.py
。在.

中有一些更详细的信息,这可能有助于查看正在运行的Django实现并进行比较,以找出错误所在。 下面是一个简单的Django项目,其中包含多个设置文件:

(这是一个项目,它可能对您有用——如果不忽略它,请在{{cookiecutter repo name}}中查找实际的django源代码)


另外,我推荐“两勺Django”。几天前刚捡到的,很喜欢

我仍然不确定为什么我的设置不起作用。但是,为了暂时解决这个问题,我使用

创建了一个全新的项目,到底出了什么问题? 您是否将它们包含在url.py文件中

from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = patterns('',
                       url(r'^admin/', include(admin.site.urls)),
                       ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()

问题是您不知道如何告诉Django在哪里找到重命名的设置文件?或者您不知道如何配置Django静态文件?这两个问题的解决方案大不相同(都需要更多信息才能找到合适的答案)。@MattCooper我不知道如何配置Django静态文件,因为我的设置文件已移动到我创建的新“设置”目录中。它似乎找到了其中的一些,但不是全部…?我最初试图在我的模板中使用
{{STATIC\u URL}}
,但后来阅读了有关使用模板标记的内容。不知道这是否重要…?谢谢你的建议@samGbos我实际上一直在使用“两个勺子”这本书,并遵循他们关于创建多个设置文件的章节,但不能完全正确(可能是因为我使用的是1.7)我的问题是我没有一个设置文件,所以位置是
my/project/settings/base\u settings.py
我知道如何指定特定的文件,但无法正确配置在何处查找静态文件是的,我误解了您遇到的核心问题。将添加更多详细信息。
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = patterns('',
                       url(r'^admin/', include(admin.site.urls)),
                       ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()