prerender.io with staticfile buildpack



我正在尝试使用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;
            }
        }
    }
}

最新更新