我正在尝试使用cloud Foundry staticfile buildpack(https://github.com/cloudfoundry/staticfile-buildpack(设置Prerender.io,但我无法获得它的服务正确文件。
我找不到静态文件使用的默认nginx.conf。我正在使用(https://github.com/cloudfoundry/staticfile-buildpack/blob/master/cf_spec/fixtures/reverse_proxy/nginx.conf(P>
下面的nginx.conf部分工作。由于某种原因,CSS正在加载,但是它们没有被渲染。仅显示浏览器默认样式。
可以在http://cabemcasa-front-stinaging-dev.mybluemix.net/
上访问服务器的在线预览worker_processes 1;
daemon off;
error_log <%= ENV["APP_ROOT"] %>/nginx/logs/error.log;
events {
worker_connections 1024;
}
http {
log_format cloudfoundry '$http_x_forwarded_for - $http_referer - [$time_local] "$request" $status $body_bytes_sent';
access_log <%= ENV["APP_ROOT"] %>/nginx/logs/access.log cloudfoundry;
default_type application/octet-stream;
sendfile on;
gzip on;
tcp_nopush on;
keepalive_timeout 30;
server {
listen <%= ENV["PORT"] %>;
server_name localhost;
location / {
root <%= ENV["APP_ROOT"] %>/public;
index index.html index.htm Default.htm;
}
# location @prerender {
# proxy_set_header X-Prerender-Token xxx;
# set $prerender 0;
# if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
# set $prerender 1;
# }
# if ($args ~ "_escaped_fragment_") {
# set $prerender 1;
# }
# if ($http_user_agent ~ "Prerender") {
# set $prerender 0;
# }
# if ($uri ~ ".(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent)$") {
# set $prerender 0;
# }
# #resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
# resolver 8.8.8.8;
# if ($prerender = 1) {
# #setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
# set $prerender "service.prerender.io";
# rewrite .* /$scheme://$host$request_uri? break;
# proxy_pass http://$prerender;
# }
# if ($prerender = 0) {
# # rewrite .* /index.html break;
# }
# }
}
}
我在另一个项目中做了类似的事情。尝试以下操作:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen <%= ENV["PORT"] %>;
root <%= ENV["APP_ROOT"] %>/public;
index index.html;
server_name localhost;
location / {
try_files $uri @prerender;
}
location @prerender {
proxy_set_header X-Prerender-Token sSfyna56hdgshmXfr24O;
set $prerender 0;
if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~ ".(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent)$") {
set $prerender 0;
}
resolver 8.8.8.8;
if ($prerender = 1) {
set $prerender "service.prerender.io";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}
}
}