我的Django应用程序不提供静态文件

时间:2015-08-28 11:13:50

标签: python django

这很奇怪。它工作正常,但它运行的机器坏了,我不得不重新安装它没有成功。 webapp显示wuite背景,没有图像,css或js加载。

这就是应用程序的结构: App folder structure

这些是settings.py中的变量(如果需要,请询问其他任何内容):

DEBUG = True
TEMPLATE_DEBUG = DEBUG

STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    '/var/www/myapp/static/',
)

在我的tempaltes中,我总是设置内容'像这样的网址:

<img id="logo" src="{{STATIC_URL}}images/logo.png"\>

关于问题出在哪里?

5 个答案:

答案 0 :(得分:1)

通常不鼓励您拥有的设置,对于本地开发,它们可以正常工作,但是如果您尝试在基于Linux的计算机上运行它,则无法正常工作。

以下是格式化方式:

以下设置就是这样的:

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root')
#this applies to all operating systems
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'static', 'static_dirs'),
)

您可以将静态文件夹和文件放在“static_dirs”中,然后在需要同步到“static_root”时使用。您可以输入:“python manage.py collectstatic”。

然后在模板文件中输入:

{% load static from staticfiles %}

<img id="logo" src="{% static "images/logo.png" %}"\>

这应该有效。

答案 1 :(得分:0)

检查源是否使用视图源加载,如果是,那么检查是否有任何指向静态资产的链接(如果存在)则必须硬刷新浏览器

答案 2 :(得分:0)

在模板中加入{% load staticfiles %}

答案 3 :(得分:0)

您对Allen Fernandes上述帖子的回复发表评论表示您处于DEBUG模式。 django.contrib.staticfiles中有INSTALLED_APPS吗?

答案 4 :(得分:0)

我终于发现了错误:Apache默认运行并在端口80中提供html模板,但没有静态文件的权限。