[英]Django and staticfiles questions
我学习Django的次数越多,发现新事物的机会就越多。
我阅读了官方文档,stackoverflow和google,但我仍然有疑问。
组织静态文件的正确/正常方式是什么?
我的意思是文件夹和settings.py
我有类似的东西:
CURRENT_PATH = os.path.dirname(__file__)
STATIC_ROOT = os.path.join(CURRENT_PATH, 'static')
STATIC_URL = '/static/'
好的,我要在〜/ static /上收集我所有的应用程序静态信息
我在每个应用程序上都创建了一个static / appname文件夹,并将所有应用程序的静态文件都放在那里。
另外,我需要一个静态文件夹来存放整个项目范围的静态数据(它的通用名称是什么?因为我将/ static /用于收集的内容,所以它们不能相等)。
到目前为止,到目前为止,我的CSS如下:
href="{{ STATIC_URL }}appname/styles.css"
它就像魅力。
但是我认为,当我部署应用程序时,必须运行“ collectstatic”,因此我将“ / static /”文件夹放在切诺基上。
问题是……行得通吗? 我尝试对AppDirectoryFinder和_DIRS之一进行注释,但这在本地不起作用(我收集了静态内容,我的意思是在/ static /上的css以及其他文件夹中)。
在所有项目的根目录上都有一个静态文件夹会更好吗? 并将admin css复制到该文件夹(又称为手动收集静态文件)。
我在github / bitbucket上看到的项目已准备好进行部署,我需要知道从开发人员进行部署的步骤。
谢谢!
我将在使用Django静态应用程序时对此进行分解
静态媒体将投放到的网址STATIC_URL ='/ static /',用于模板中的两件事{{STATIC_URL}}和静态文件网址,以及将静态文件托管在django中( 仅用于开发 )
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
文件在服务器上的驻留位置
STATIC_ROOT = '/var/www/website/static'
当您运行collectstatic时,将使用它,这是您的Web服务器应在其中查找的位置
您的文件查找器定义
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
我使用了django的默认值,您当然可以使用更多默认值,但这是您想要了解的关键
'django.contrib.staticfiles.finders.AppDirectoriesFinder'
将在已安装的应用程序中找到任何名为“ static”的文件夹
'django.contrib.staticfiles.finders.FileSystemFinder'
会告诉django查看STATICFILES_DIRS(这是您项目范围内的静态文件)
应该定义为元组
STATICFILES_DIRS = (
join( CURRENT_PATH, 'static' ),
)
您可以在其中使用“静态”,也可以根据需要添加其他多个文件夹以进行监视。
您放置在每个应用程序内的子目录(即:app / static / appname)不是必需的,但可以确保不同应用程序内具有相同名称的文件不会覆盖其他应用程序或根静态文件夹中的文件
所有这些都是根据我自己的经验和https://docs.djangoproject.com/en/1.3/ref/contrib/staticfiles/
另外,我需要一个静态文件夹来存放整个项目范围的静态数据(它的通用名称是什么?因为我将/ static /用于收集的内容,所以它们不能相等)。
你确定吗? 我很确定我正在使用同一文件夹来收集我的静态文件并保存我的项目范围内的静态文件。 不知道这是否不建议实践,但是对我有用。
注意,这只是在部署方面。 我的代码库只有项目静态文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.