1.如何在一台阿里云服务器下 搭建多个网站?
2.Uncaught TypeError: $.fn.placeholder is not a function
注释掉报错位置之后的jquery script后,报错就没了,不知道为什么。
3.Failed to load resource: the server responded with a status of 404 (Not Found) http://127.0.0.1:8000/favicon.ico
后台也有报错信息,
[30/Apr/2017 07:02:12] "GET /favicon.ico HTTP/1.1" 404 3976
Not Found: /favicon.ico
解决方法:
在根urls.py中添加,
from django.views.generic import RedirectView
urlpatterns = [
...
# Added at 20170430
url(r'^^favicon\.ico$', RedirectView.as_view(url='static/site/v1/img/Kfavicon.ico'),name='go-to-favicon'),
]
其中,可以在网上生成ico图标,例如 http://www.faviconico.org/
下面的code有无必要不确定,总之没加,也可以显示。
<!--Added at 20170430-->
<link REL="SHORTCUT ICON" HREF="{{ STATIC_URL }}site/v1/img/Kfavicon.ico">
4.The _imagingft C module is not installed
使用captcha生成验证码,部署到阿里云上后,验证码总是不显示,浏览器报错。度娘之后,网上说是因为缺少一个freetype的库,或者没有安装对应的图片和处理字体的包。解决办法就是先卸载PIL的包,然后安装需要的库,接着重装PIL。
首先,如何卸载已安装的库?执行sudo pip freeze可以查询所有已安装的库;接着用sudo apt-get uninstall Pillow 去删除已经安装的库,进入安装路径下看,确实已经移除;然后,安装相应的库及PIL。
sudo apt-get install libjpeg-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install PIL
xxx@iZ25e4mkhq2Z:~$ sudo pip freeze
[sudo] password for xxx:
Django==1.9.9
MySQL-python==1.2.5
Pillow==2.2.1
apt-xapian-index==0.45
argparse==1.2.1
chardet==2.0.1
colorama==0.2.5
django-ckeditor==5.1.1
django-crispy-forms==1.6.0
django-formtools==1.0
django-redis==4.4.4
django-reversion==2.0.6
django-simple-captcha==0.5.3
django-widget-tweaks==1.4.1
html5lib==0.999
httplib2==0.9.2
pbr==1.10.0
python-apt==0.9.3.5ubuntu1
python-debian==0.1.21-nmu2ubuntu2
qrcode==5.3
redis==2.10.5
requests==2.2.1
six==1.10.0
ssh-import-id==3.21
stevedore==1.17.1
uWSGI==2.0.13.1
urllib3==1.7.1
virtualenv==1.11.4
virtualenv-clone==0.2.6
virtualenvwrapper==4.7.2
wsgiref==0.1.2
xadmin==0.6.1
xxx@iZ25e4mkhq2Z:~$ sudo pip uninstall Pillow
Uninstalling Pillow:
/usr/local/lib/python2.7/dist-packages/Pillow-2.2.1-py2.7-linux-x86_64.egg
Proceed (y/n)? y
Successfully uninstalled Pillow
打开nginx和uwsgi的log,可以发现同样的报错:
/var/log/uwsgi/xxx.log:
Internal Server Error: /captcha/image/f822586d0b069cc9caa7f97e0093fbda20f26f8a/
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/Django-1.9.9-py2.7.egg/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python2.7/dist-packages/Django-1.9.9-py2.7.egg/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django_simple_captcha-0.5.3-py2.7.egg/captcha/views.py", line 67, in captcha_image
font = ImageFont.truetype(fontpath, settings.CAPTCHA_FONT_SIZE * scale)
File "build/bdist.linux-x86_64/egg/PIL/ImageFont.py", line 242, in truetype
return FreeTypeFont(font, size, index, encoding)
File "build/bdist.linux-x86_64/egg/PIL/ImageFont.py", line 146, in __init__
self.font = core.getfont(font, size, index, encoding)
File "build/bdist.linux-x86_64/egg/PIL/ImageFont.py", line 42, in __getattr__
raise ImportError("The _imagingft C module is not installed")
ImportError: The _imagingft C module is not installed
/var/log/nginx/error.log:
2017/05/01 14:09:24 [error] 13170#0: *24766 upstream prematurely closed connection while reading response header from upstream, client: 123.113.102.173, server: 123.57.231.214, request: "GET /captcha/image/f822586d0b069cc9caa7f97e0093fbda20f26f8a/ HTTP/1.1", upstream: "uwsgi://unix:///home/kai/workspace/TheBoat/TheBoat.sock:", host: "123.57.231.214", referrer: "http://123.57.231.214/blog/8/"
重新启动了uwsgi和nginx,页面加载正常。
xxx@iZ25e4mkhq2Z:~/yyy/zzz/uwsgi$ sudo uwsgi --ini TheBoat_uwsgi.ini
xxx@iZ25e4mkhq2Z:~/yyy/zzz/uwsgi$ ps -eaf|grep uwsgi
root 2578 1 5 13:08 ? 00:00:00 uwsgi --ini TheBoat_uwsgi.ini
root 2581 2578 0 13:08 ? 00:00:00 uwsgi --ini TheBoat_uwsgi.ini
root 2582 2578 0 13:08 ? 00:00:00 uwsgi --ini TheBoat_uwsgi.ini
root 2583 2578 0 13:08 ? 00:00:00 uwsgi --ini TheBoat_uwsgi.ini
root 2584 2578 0 13:08 ? 00:00:00 uwsgi --ini TheBoat_uwsgi.ini
xxx 2586 2533 0 13:08 pts/0 00:00:00 grep --color=auto uwsgi
5. Illegal mix of collations
6. Ajax与comment提交时总报错
原因是:
1.Ajax期待的是JSON格式,误调用了render_to_response。应该调用render_json_to_response返回JSON格式。
return self.render_json_to_response(status=1, data={'html':res.rendered_content})
2.应该调用json.dumps,而不是json.dump。
return HttpResponse(json.dumps(data), content_type=self.content_type)
7. 如何在图片加载不成功的情况下,加载默认图片?
<img class="ctavatar" src="{% gravatar_url comment.email %}" width="63" height="63">
添加onerror属性,src指定默认图片地址。Django使用static标签。
<img class="ctavatar" src="{% gravatar_url comment.email %}" width="63" height="63" onerror="this.src='{% static 'site/v1/img/davatar.png' %}'">