部署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文件中添加了项目路径,但仍然没有解决静态文件问题。请告诉我们你们是否知道我做错了什么或者这里有什么问题。
先谢谢你们
答案 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)
Django文档涵盖了该主题。参见:
答案 2 :(得分:0)
警告
这仅在DEBUG为True时有效。
这是因为此视图效率极低并且可能不安全。这仅用于本地开发,决不能在生产中使用。
如果您仍然需要在本地静态服务器(例如无需调试即可进行测试),则可以在不安全模式下运行开发服务器:
python manage.py runserver --insecure
享受欢呼声:)