問題,這裏有雲:我試圖運行FastCGI的一個網站,但我有模板不渲染
我正在使用FastCGI/nginx的和Django的我的網站。我已經管理啓動服務器,沒有錯誤。 我跑manage.py runserver命令,並參觀了網站,它具有下manage.py工作的菜單,但是當我使用manage.py runfcgi它開始:
python manage.py runfcgi method=prefork maxchildren=30 host=127.0.0.1 port=4300 pidfile=pid workdir="$PWD" daemonize=false outlog="$LOGFILE" errlog="$LOGFILE"
應用程序只提供我的第一頁中網站。
例如:
If I go to mywebsite.com this being the home page I get the right
template home.html.
If I visit mywebsite.com/get-started ,the server tries to render the same home.html.
使用manage.py runserver命令的作品,但runfcgi事實並非如此。
PS: 該網站使用一些餅乾,它有一個自定義的渲染功能,它是從GitHub,店面應用的indextank服務:https://github.com/linkedin/indextank-service 您可以通過manage.py運行它。
通過runfcgi運行時,不改變頁面時,我嘗試導航頂部的菜單,它使請求,但它得到的是「home.html的」
任何想法是極大的讚賞相同的模板。
加法: 服務器FastCGI的配置,這是相當標準:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
和應用程序的FastCGI配置:
server {
listen 80;
server_name search.spid.me www.search.spid.me;
client_max_body_size 1m;
location/{
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:4300;
include fastcgi_params;
#fastcgi_param QUERY_STRING $query_string;
#fastcgi_param REQUEST_METHOD $request_method;
#fastcgi_param CONTENT_TYPE $content_type;
#fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param PATH_INFO $fastcgi_script_name;
#fastcgi_pass 127.0.0.1:4300;
#fastcgi_param PATH_INFO $fastcgi_script_name;
#fastcgi_param REQUEST_METHOD $request_method;
#fastcgi_param QUERY_STRING $query_string;
#fastcgi_param SERVER_NAME $server_name;
#fastcgi_param SERVER_PORT $server_port;
#fastcgi_param SERVER_PROTOCOL $server_protocol;
#fastcgi_param CONTENT_TYPE $content_type;
#fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_pass_header Authorization;
#fastcgi_intercept_errors off;
}
location /_static {
expires 24h;
autoindex on;
alias /home/indextank/storefront/static/;
}
location /nginx_status {
stub_status on;
access_log off;
deny all;
allow 127.0.0.1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
server_name spid.search.me www.spid.search.me;
listen 443;
ssl on;
#ssl_certificate /etc/nginx/conf.d/server.crt;
#ssl_certificate_key /etc/nginx/conf.d/server.key;
server_name search.spid.me www.search.spid.me;
client_max_body_size 1m;
location/{
fastcgi_pass 127.0.0.1:4300;
include fastcgi_params;
fastcgi_param HTTPS on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
我做了一些更多的調試和原來的路徑和PATH_INFO的請求沒有設置...
您還沒有發佈重要的位,這是您的服務器FastCGI配置。 –
只是一個想法...它可能是DEBUG = True和/或django期望在調試模式和實時模式之間找到您的模板的不匹配問題? – jcfollower
想到這一點,我試着餵它一個非常基本的文字渲染,但沒有運氣。 – hackawaye