【问题标题】:Django : static files not loadingDjango:静态文件未加载
【发布时间】:2012-01-21 18:50:35
【问题描述】:

我的 django 项目包含一个文件夹 STATIC,其中有它的子文件夹 css、images、js 和 swf。我的网站在终端上运行的开发服务器中找不到这些引发 404 的文件。

我有一个 settings_local.py 文件,我在其中设置了路径,例如(在 ubuntu 11.04 上运行)

STATIC_ROOT = '/home/zulaikha/dust.bin/my_project/static/'
STATIC_SERVE_PORT = 80

来自客户端的 sample settings-local.py 文件建议如此

# static root
STATIC_ROOT = 'C:/Program Files (x86)/XAMPP/htdocs/static'
STATIC_SERVE_PORT = 8080

我见过一些类似的问题,但都认为我读到的STATICFILES 是在 Django 1.3 中引入的 我哪里错了,我该如何纠正自己?

【问题讨论】:

  • 您的 STATIC_URL 设置为什么,例如您使用什么 url 访问某些媒体?
  • STATIC_URL = '/static/' 并且正在使用 localhost/static/
  • 您确定要针对开发服务器而不是 apache 等进行测试吗?静态端口和所有与开发服务器无关的东西,您的 url 应该是相对的或动态的。试试 /static/file.css 我希望在那个绝对路径中有一个端口,除非你在 80 上运行它
  • 您使用什么应用来提供静态服务? django-staic 文件?那么STATIC_SERVE_PORT是什么?从来没有听说过这个设置,谷歌只给出了一个链接——这个问题。
  • @jdi 我正在通过 sudo python manage.py runserver 0.0.0.0:80 运行我的 django 开发服务器,因此我不必指定端口。其次,file.css 链接也返回 404

标签: python django django-1.2


【解决方案1】:

根据您的 cmets,这里有两个选项:

  1. 联系编写代码的程序员并询问他。
  2. 重写静态服务逻辑

【讨论】:

  • 从问题看来,他们实际上并没有任何静态文件服务功能。所以这不是“重写”,而是“写”。
【解决方案2】:

如果您确实在使用 django 1.2,那么您必须安装 django-staticfiles。如果您在客户端的包含的 requirements.txt 中没有看到它,那么他要么没有将其冻结到文件中,要么没有使用该功能,而只是通过 apache 或其他生产服务器指向它。

按照文档中的这些说明进行操作。具体是基本部分: https://docs.djangoproject.com/en/dev/howto/static-files/

您需要将静态文件添加到已安装的应用程序中。您也不需要手动添加 url,因为 django 应该使用 runserver 命令自动添加。

还可以先通过不使用 sudo 或自定义 ip 和端口运行来验证它是否可以在本地运行

【讨论】:

    【解决方案3】:

    在最简单的形式中,这就是问题的解决方案。在项目 urls.py 中包含以下几行

    urlpatterns += patterns('',
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
        }),
    

    )

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 2014-11-12
      • 2021-04-03
      • 2016-11-06
      • 1970-01-01
      • 2015-05-11
      • 2020-08-31
      • 2012-09-03
      相关资源
      最近更新 更多