在django 1.4中找不到静态文件

时间:2012-12-31 23:37:37

标签: django deployment django-staticfiles django-1.4 django-static

部署django应用程序时。我有静态文件的问题。我在静态目录中有JS和CSS文件。但浏览器无法找到这些文件。我在本地机器上拥有与服务器操作系统相同的ubuntu相同的文件和设置,并且在本地工作。虽然它有相同的设置,但我粘贴下面的静态目录和文件设置。

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(ROOT_PATH,'static')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'


# Additional locations of static files
STATICFILES_DIRS =(
                os.path.join(ROOT_PATH,'static'),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

在此之前定义上述代码中的根路径:

import os
#from django.contrib.sites.models import Site
ROOT_PATH = os.path.dirname(__file__)

我正在使用mod_wsgi和apache2,在我的理解中它应该在加载/ somefoldername时找到文件然后浏览器应该进入该目录但是没有得到问题的地方。要了解环境和wsgi设置e.t.c.我在这里关注的是我发布了我的wsgi文件详细信息及其工作方式的问题:500 server error on django site after shifting to server

我很多时候在查找应用程序和其他模板和模块e.t.c时遇到问题。甚至在服务器上的syncdb命令中,对于我附加根路径的模板,它开始工作也在wsgi文件中添加了项目路径,但仍然没有解决静态文件问题。请告诉我们你们是否知道我做错了什么或者这里有什么问题。

先谢谢你们

3 个答案:

答案 0 :(得分:2)

运行“collectstatic”时,是否所有文件都复制到STATIC_ROOT? 您应首先验证这一点,以便知道文件应该在哪里。

您是否已将apache配置为将STATIC_ROOT中的静态文件作为“/ static /”提供? Django不会在生产中为您提供静态文件(DEBUG = False),因此您需要配置Web服务器软件以便为您提供文件。

另外,我认为您不希望STATICFILES_DIRS包含与STATIC_ROOT相同的路径。文件从STATICFILES_DIRS 中的复制到 STATIC_ROOT。您的STATICFILES_DIRS应包含在“collectstatic”期间未以其他方式搜索的目录。

答案 1 :(得分:0)

答案 2 :(得分:0)

警告

这仅在DEBUG为True时有效。

这是因为此视图效率极低并且可能不安全。这仅用于本地开发,决不能在生产中使用。

如果您仍然需要在本地静态服务器(例如无需调试即可进行测试),则可以在不安全模式下运行开发服务器:

python manage.py runserver --insecure

享受欢呼声:)