Mostrando postagens com marcador pinax. Mostrar todas as postagens
Mostrando postagens com marcador pinax. Mostrar todas as postagens

quinta-feira, 18 de agosto de 2011

Django Pinax static css js corrigir links quebrados kinghost

Continuando as configurações do kinghost se tudo o que está no poste anterior deu certo ainda há o problema dos arquivos estáticos para resolver.

.../settings.py
 STATIC_URL = "/site_media/static/"  
 ...  
 ADMIN_MEDIA_PREFIX = posixpath.join(STATIC_URL, "admin/")  

Nos aquivos dos templates
.../base.html
 <link href="{{ STATIC_URL }}pinax/css/base.css" rel="stylesheet">  
que aponta para:
 <link href="/site_media/static/pinax/css/base.css" rel="stylesheet">  

Na pasta "home" no servidor há um arquivo chamado "www" que seria o "/" dos aquivos estáticos, logo se eu preciso de "/site_media/static/pinax/css/base.css" na aplicação crio um link simbólico "site_media -> /home/<seu_nome>/apps_wsgi/<nome_do_projeto>/site_media" (link site_media apontando para site_media dentro do meu projeto) dentro de "www".

Exemplo:
 ~/www  
    /site_media -> /home/<você>/apps_wsgi/dev/site_media  
              /static -> /home/<você>/pinax/pinax-dev/lib/python2.4/site-packages/pinax/media/default  

No Admin.
.../Base.html
 <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/base.css{% endblock %}" />  
que aponta para:
 <link href="/site_media/static/admin/css/base.css" type="text/css" rel="stylesheet">  

Logo dentro da pasta "~/www/site_media/static/" tenho que criar a pasta admin/ e apontar para os arquivos estáticos. Entre outras que também serão necessárias.

Exemplo:
 ~/www/site_media/static  
             /admin -> /home/<você>/pinax/pinax-dev/lib/python2.4/site-packages/django/contrib/admin/media/  
             /css -> /home/<você>/pinax/pinax-dev/lib/python2.4/site-packages/pinax/projects/basic_project/media/css  
             /js -> /home/<você>/apps_wsgi/dev/media/js  
             /uni_form -> /home/<você>/pinax/pinax-dev/lib/python2.4/site-packages/uni_form/media/uni_form  
 ...  

E assim por diante até que o console do Chrome ou o firebug não tenha mais erros 404.

Fontes:
Django static files - https://docs.djangoproject.com/en/dev/howto/static-files/

domingo, 7 de agosto de 2011

Como instalar Pinax 0.9 e Django 1.2.3 com virtualenv no kinghost

Servidor Kinghost:
  • CentOS - Linux imia.kinghost.net Kernel 2.6.31
  • Python 2.4.3
  • Django 1.0.4 final
  • Apache/2.2.3 - Jan 15 2008 20:33:30
    • mod_WSGI DAEMON MODE

Preciso modificar o Django para versão 1.2.3 para instalar o Pinax 0.9a (última versão).

Instalando virtualenv:
 $ easy_install virtualenv  
Criando um ambiente de desenvolvimento no virtualenv:
 $ python /home/<seu-nome>/apps_wsgi/.site-packages/virtualenv <seu-ambient> 

Instalando PIL - Python Image Library
 $ easy_install PIL  

Instalando Pinax 0.9 (versão de desenvolvimento):
 $ pip install Pinax  

Entre no ambiente criado
 $ source <seu-ambient>/bin/activate  

Escolha um dos projetos Pinax
 $ pinax-admin setup_project -l  

Clone o projeto (clonando "social" no exemplo abaixo)
 $ pinax-admin setup_project -b social dev 

Para esse exemplo chamei meu projeto de "dev" e logo depois o renomei para "_dev":
 $ mv dev _dev 

Assim eu posso ir até o painel de controle e criar um projeto Django com o nome "dev" e após finalizado o processo de criação copiar o conteúdo da pasta "_dev" para "dev" aproveitando assim todas as configurações no servidor e do meu projeto Pinax.

Para finalizar é preciso modificar o arquivo dev.wsgi:
 import os, sys  
 activate_this = '/home/<seu-nome>/pinax/pinax-dev/bin/activate_this.py'  
 execfile(activate_this, dict(__file__=activate_this))  
 paths=['/home/<seu-nome>/apps_wsgi',  
     '/home/<seu-nome>/apps_wsgi/dev/apps']  
 for path in paths:  
   if path not in sys.path:  
     sys.path.append(path)  
 os.environ['PYTHON_EGG_CACHE'] = '/home/<seu-nome>/apps_wsgi/.python-eggs'  
 os.environ['DJANGO_SETTINGS_MODULE']='dev.settings'  
 from django.core.handlers.wsgi import WSGIHandler  
 application=WSGIHandler()  

Fontes:
Pinax - http://pinaxproject.com/docs/dev/gettingstarted/
Pinax Docs - http://pinaxproject.com/docs/dev/
VirtualEnv - http://www.arthurkoziel.com/2008/10/22/working-virtualenv/
WSGI - http://code.google.com/p/modwsgi/wiki/VirtualEnvironments