我已经尝试了几种方法来找到最有用的方法来使用dreamhost在我的主机上提供静态文件。 到目前为止,只有一种方法对我有用,那就是使STATIC_URL
成为超链接。这可能会成为一种动态障碍,特别是在收集我的静态文件时。我正在使用passenger_wsgi来托管我的网站。除了提供静态文件的方式之外,其他所有工作都正常。 如何最有效地提供静态文件?请在答案中包含我应放置静态文件的位置,STATIC_URL
,STATIC_ROOT
和urlpatterns
。 Python 2.7 Django 1.9
我当前的网站结构:
home/user/domain.com/
/env
/MyDjangoProject
/tmp
restart.txt
/public
/static_in_pub
/static_root
/css
/js
/media
passenger.wsgi.py
我的settings.py Static Roots:
STATIC_URL = 'http://www.domain.com/static_in_pub/static_root/'
STATIC_ROOT = os.path.join(BASE_DIR, 'public/static_in_env/static_root')
MEDIA_URL = 'http://www.domain.com/static_in_pub/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'public/static_in_env/media')
print 'Settings.py STATIC_ROOT: %s' % (STATIC_ROOT)
print 'Settings.py MEDIA_ROOT: %s' % (MEDIA_ROOT)
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), 'static_in_pro/our_static'),
os.path.join(os.path.dirname(BASE_DIR), 'static_in_pro/media'),
#'/var/www/static/',
)
我在urls.py中的静态urlpatter:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
答案 0 :(得分:0)
@ Daniel-Roseman的回答是正确的。您应该像我在我的问题中一样直接提供静态文件。 Apache文件通过直接链接提供:STATIC_URL = 'http://www.domain.com/static_in_env/static_root'
但是根据我自己的经验,我发现最好将静态文件保存在公共目录上并从那里提供服务。
像这样:
home/user/domain.com/
/env
/MyDjangoProject
/tmp
restart.txt
/static_in_env #Static in here instead of in public
/static_root
/public
passenger.wsgi.py