Застревает с запросом URL-адреса Пирамиды, где request.static_url
и request.application_url
являются 2 идентифицируемыми подозреваемыми.Неправильно сгенерирован неправильный код пирамиды, поданный на nginx + phusion пассажирском и шаблоны Мако
Сгенерированный запрос URL-адресов в Pyramid как-то включает URL-адрес представления, когда я помещал его на веб-хост, но работает нормально локально, используя pserve
.
Например:
config.add_route('signin','/view/signin')
Внутри шаблона Мако
У меня есть:
href="${request.static_url('project:static/blueprint/css/screen.css')}"
, который должен показать (с помощью pserve
):
href="http://www.site.com/static/blueprint/css/screen.css"
, но в вместо него она показывает:
href="http://www.site.com/view/signin/static/blueprint/css/screen.css"
Другой пример находится на передней URLs страницы должны показать:
src = "http://www.site.com/static/img/foo.jpg"
И вместо этого он показывает:
src = "http://www.site.com//static/img/foo.jpg"
Я в настоящее время работает пирамида 1.3 + Мако шаблонов с использованием nginx 0.8.53 + Phusion пассажира 2.2.15 на сервере VPS.
То же самое с request.application_url
. В коде представления я послал Dict (url = request.application_url + '/view/signin'
)
URL-адрес для формы должен показать:
action="http://www.site.com/view/signin"
Вместо этого он показывает:
action="http://www.site.com/view/signin/view/signin"
Я скопировал некоторые настройки Nginx на http://wiki.pylonshq.com/display/pylonscookbook/Running+Pylons+with+NGINX.
в частности:
#site runs on Pylons
location/{
include /usr/local/nginx/conf/proxy.conf;
proxy_pass http://127.0.0.1:8080;
proxy_redirect default;
}
и proxy.conf:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
Остальные я оставил в покое, как его что-то я не хотел трогать.
nginx.conf на сервере выглядит примерно так. (Я не использую PHP, но это тот материал, который я не хотел касаться).
Кто-то предложил, чтобы приложение было/установлено в /, но я не знаю, как это сделать.
server {
listen <ip>:80;
server_name site.com www.site.com;
access_log /<path>/access.log combined;
error_log /<path>/error.log error;
root /home/<path>/public;
index index.html index.htm index.php index.php5;
include /home/<path>/nginx/site.com/*;
# No mirrors - using strict redirects
#if ($http_host != site.com) {
rewrite ^(.*)$ http://site.com$1 permanent;
#}
autoindex on;
passenger_enabled on;
passenger_base_uri /;
# Disallow access to config/VCS data
location ~* /\.(ht|svn) {
deny all;
}
#site runs on Pylons
location/{
include /<path to conf file>/proxy.conf;
proxy_pass http://127.0.0.1:8080;
proxy_redirect default;
}
# Statistics
location /stats/ {
alias /home/<path>/html/;
auth_basic "Statistics Area";
auth_basic_user_file /home/<path>/html/.htpasswd;
}
location /doc/analog/ {
alias /usr/share/analog/;
}
# PHPMyAdmin
rewrite ^/dh_phpmyadmin/([^/]*)/(.*)$ /dh_phpmyadmin/$2;
location /dh_phpmyadmin/ {
alias /dh/web/phpmyadmin/;
}
location ~ /dh_phpmyadmin/(.+)\.php {
alias /dh/web/phpmyadmin/;
fastcgi_param SERVER_PORT 80;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include /dh/nginx/etc/fastcgi_params;
set $relpath "index.php";
if ($uri ~ ^/dh_phpmyadmin/(.+)$) {
set $relpath $1;
}
fastcgi_param SCRIPT_FILENAME /dh/web/phpmyadmin/$relpath;
fastcgi_pass unix:/home/<path>/.php.sock;
}
# PHP
location ~* \.(php|php5|php4)($|/) {
fastcgi_param SERVER_PORT 80;
fastcgi_split_path_info ^(.+\.(?:php|php5|php4))(/.*)$;
if (!-e $document_root$fastcgi_script_name) {
return 404;
}
include /dh/nginx/etc/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/home/<path>/.php.sock;
#pragma php_launch <path>
}
}