我有一个django应用程序,静态文件是使用Nginx服务的。 我想包括应用程序(function)在项目中。
我想创buildnewapp并将文件放在静态文件夹下。 (但我需要改变Nginx的conf来服务这些目录中的文件)
project | |-templates |-static | |-js |-css newapp | |-static | |-js |-css
这是保持静态文件,模板(在应用程序?(有testing下我觉得更清楚的应用程序)的首选方法))
如果我们想要从两个位置提供静态文件如何更改Nginx conf?
Django:丑陋的pipe理界面
Django WGSIpath
Apache mod_wsgi错误:禁止您没有权限访问/在此服务器上
我目前的Nginx conf就像
location /static/ { alias /myproject/location/static/; }
如果我们把所有的filse放在那个主要的项目(静态,模板)中,维护起来会不会变得复杂?
有没有一种方法可以匹配
别名/ myproject / * /静态
使用python处理dynamic电子邮件地址
如何在Windows Vista上设置django-admin.py?
成功执行Django python命令的* only *方法是使用“python … PATH … django-admin.py ”。 为什么不能减less?
问题1的答案:
将特定应用程序的静态文件放在应用程序的文件夹中,而不是项目的“静态”文件夹。
/project/ /polls/ /static/ /polls/ foobar.css foobar.js /templates/ /polls/ Vote.html /static/ specific-to-the-project.js /templates/ specific-to-the-project.html base.html
关键是您的应用程序文件夹中有一个static文件夹,并且其中的文件夹与您的应用程序具有相同的名称。
当您运行collectstatic ,它将收集在这些文件夹中找到的所有文件。
请注意,引用文件时,你会做类似…
{% load staticfiles %} {% static 'app/foobar.css' %}
问题2的答案:
运行collectstatic ,它将收集所有文件并将其复制到由STATIC_ROOT设置指定的一个中央位置。
问题3的答案:
不,因为您不处理STATIC_ROOT的文件。 您只能在原始位置处理文件,然后在准备就绪时运行collectstatic 。
问题4的答案:
实际上,这就是staticfiles应用程序的用途。 我建议调整它,并在这里阅读: https : //docs.djangoproject.com/en/dev/ref/contrib/staticfiles/
更新回答评论
最佳做法是执行/<project_root>/polls/static/polls/foobar.css而不是/<project_root>/polls/static/foobar.css 。 然后从你的模板通过{% static 'polls/foobar.css' %}而不是{% static 'foobar.css' %} {% static 'polls/foobar.css' %}来访问foobar.css。 看下面的例子。
例
在运行collectstatic之前
/<project_root> /polls views.py urls.py ... /templates Vote.html ... /static /polls foobar.css foobar.js /otherapp views.py urls.py ... /templates hello.html ... /static foobar.css foobar.js /<static_root> (empty)
在运行collectstatic之后
/<project_root> /polls views.py urls.py ... /templates Vote.html ... /static /polls foobar.css foobar.js /otherapp views.py urls.py ... /templates hello.html ... /static foobar.css foobar.js /<static_root> foobar.css foobar.js /polls foobar.css foobar.js
每个应用程序中的静态文件夹的内容都被复制到STATIC_ROOT目录中。
您可能会将文件直接放在静态文件夹中,然后再添加一个目录并将其放在那里,从而导致文件名冲突。
当您正在开发一个开源项目并且不知道应用程序的安装位置时,这一点更为重要。 但它也被认为是最佳做法:)(我花了一段时间去适应它,但没有回头看。)
另外,只要在您的INSTALLED_APPS中列出了“民意调查”,您就不需要为STATICFILES_Dirs添加“民意调查/静态/民意调查”。
这就是为什么我们有staticfiles应用程序 。 将每个应用程序的资产放在该应用程序中,然后在部署上运行manage.py collectstatic并将它们全部收集到/ static /下的子目录中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。