我无法使用Django 1.10,uWSGI和Nginx提供静态文件。
我有一个index.html文件,其中包含CDN。
Django文档here表示“将静态文件传输到存储提供程序或CDN”。这意味着什么,“转移到CDN”?是不是从哪里获取文件的CDN?
settings.py包含,
STATIC_URL = '/static/'
STATIC_ROOT = 'nonAppBoundStaticDirectory'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
正在运行
$ python manage.py collectstatic
这会将所有CDN放在我的目录'nonAppBoundStaticDirectory'中吗?
如果是,那么我如何在模板中使用它?
摘自index.html
<!-- Bootstrap -->
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css">
来自/etc/nginx/nginx.conf
的摘录server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name example.com; # substitute your machine's IP address or FQDN
charset utf-8;
#Max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/ofey/djangoForum/fileuploader/uploaded_files; # your Django project's media files
}
location /static {
alias /home/ofey/djangoForum/noAppBoundStaticDirectory; # your Django project's static files
}
........
谢谢,
答案 0 :(得分:1)
这可能只是拼写错误。在settings.py
中,您在目录名称中有额外的n
。
STATIC_ROOT = 'nonAppBoundStaticDirectory'
在你的nginx配置中,你有不同的拼写。
location /static {
alias /home/ofey/djangoForum/noAppBoundStaticDirectory;
确保路径指向完全相同的目录。在这两种情况下使用绝对路径都是个好主意。
答案 1 :(得分:0)
如果您在开发服务器中工作 - 从 settings.py 中删除 STATIC_ROOT。您的 settings.py 现在应如下所示:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
如果您在生产中工作 - 从 settings.py 中删除 STATICFILES_DIRS。您的 settings.py 现在应如下所示:
STATIC_URL = '/static/'
STATIC_ROOT = 'nonAppBoundStaticDirectory'
不要忘记运行:
python manage.py collectstatic