-
Notifications
You must be signed in to change notification settings - Fork 925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement middleware in more frameworks/languages #12
Comments
It's also possible to use the prerender service as a proxy with Nginx. Edit - the configuration is now in this Gist: https://gist.github.com/Stanback/6998085 This config will serve existing files directly and use index.html for any other URLs (hash bang, push state, etc). A prerendered page is shown for the list of user agents or by manually appending the query string ?prerender=1 to the URL. |
nice solution :) |
@Stanback Awesome! Will you make a public gist of that? That way people can fork/edit/share it. Can you also make it point to prerender.herokuapp.com and can you check the query string for the key Once you do, let me know and I'll add it to prerender.io and the list of middleware. Thanks a ton! |
I updated this issue and prerender.io with Nginx. Thanks @Stanback! |
Anyone started on asp.net mvc? |
@runxc1 nope! I'll add it to the list above. |
Prerender for java framrwork[https://github.com/greengerong/prerender-java]. Thanks |
@greengerong Nice work! I'll add it to the website and readme tonight. |
@thoop Thanks. Are there some one to write ASP.NET MVC client side? I think prerender is a great work. Because I like angular/ko stuff. If not one to write for ASP.NET MVC, I can write it. |
@runxc1, were you going to write the ASP.NET MVC one? Or were you just requesting it? |
Just want to signal some typo: its Yeoman and not Yeomon :) |
@borisrorsvort Oops! Thanks for that. |
I was more requesting it/seeing if there was one. I won't be able to get around to writing one for a few weeks. |
Cool, thanks! @greengerong feel free to write an ASP .NET MVC one :) |
@thoop thanks, I will finish it when i am free. |
@thoop Prerender for asp.net mvc 4.0 https://github.com/greengerong/Prerender_asp_mvc . It almost done, I will clean some config and "read me", at next work. Thanks |
@greengerong Nice! I'll add it tonight. Thanks! |
Here's a python decorator to get prerender working on tornado: http://tornadogists.org/7120798/ We're using it in production, although there might be bugs from e.g. missing imports since I plucked out the code. |
@thoop Thanks |
@ysimonson Awesome! I'll add that one tonight too. Thanks! |
@thoop heads-up, the tornado link goes to the wrong place |
Sorry, copy/paste fail. Fixed! Thanks for letting me know. |
Any workaround for sails.js? |
@think-teva check out this StackOverflow answer: http://stackoverflow.com/questions/18548850/how-to-use-custom-route-middleware-with-sails-js-expressjs The prerender-node middleware is built for ExpressJS (which sails.js uses) so it should be very close to being compatible. Or check out the bottom of this doc for how they set up passport in sails.js: https://github.com/balderdashy/sails-docs/blob/0.9/policies.md |
Hi! I just release a middleware for Scala Spray in Sonatype ( https://oss.sonatype.org/content/repositories/releases/com/github/jarlakxen/spray-prerender_2.10/ ) |
@Jarlakxen Great! Thanks a lot. I added it to this card and I'll add it to our website and prerender repo asap. |
Hello, I wrote a very simple middleware for the Slim PHP Framework ( http://www.slimframework.com ). I use pushState urls and not hash fragments, so the code for the escaped fragments could be wrong, didn't know how to check it. It correctly checks for bots using the user agent, and forwards those requests to Prerender. repo: https://github.com/mahonrig/SlimPrerenderMiddleware |
@thoop Thanks for the link! I went back through, did some refactoring, added a bunch of ignored extensions (got them from your apache .htaccess). Works very well for my implementation at the least. It's still a lot simpler then the middleware for the larger frameworks, but Slim is supposed to be :) |
It certainly seems that way - we've only had it set up for a couple of hours on a dev instance. Google Webmaster Tools seems happy scraping our Angular / Sails / Prerender app though! |
@talss89 Thanks,
|
Has anyone seen (or created) a middleware that works with Flask? |
Thanks for the awesome work, I went ahead and created a golang middleware, feedback is welcome :). |
Could we add IIS to the list ? Should be a simple rewrite from Apache ? |
@talss89 Hey would you be interested in publishing a sails.js hook that integrates with prerender? We love to give shoutouts to community projects. Let me know, thanks. -- sails.js team |
Has anyone seen (or created) a middleware that works with Web API & IIS? |
Some people have had success using this config with IIS: https://gist.github.com/blowsie/04c183c62a432f6450c9 |
What are the steps to have own Prerender Server on Azure. My application is written in AngularJS, Web API and deployed in Azure. |
VERY difficult to get prerender.io working in azure. It's ridiculous. Has anyone else been able to come up with anything better other than the link @thoop provided? |
Thanks @luisbox. My prerender.io working with http://service.prerender.io in Azure. But I want to have my own prerender server deployed in azure. So that I can use for my website. |
@jrapolu You can probably accomplish this using an Azure worker role (cloud service). I'd assume that once you set PhantomJS up within an azure worker role, you could use a similar web.config file and point to that service url, instead of prerender.io. Keep in mind that azure websites and web jobs can't run GDI+ which PhantomJS uses. |
Thanks @luisbox for the info. I have tried with Azure worker role (cloud service). But No luck. Any working sample or steps to be followed will be very helpful. |
Please keep discussion on this thread to middleware implementations. Create a new issue if you'd like to discuss running the Prerender server on Azure. Thanks! |
Sure. Thank you. Sent from my iPhone
|
Ruby (Sinatra) and Ruby (Padrino) would be nice. I'll try with the Apache one now as the app is already using that in front of the framework itself anyway. |
@emanuil-tolev Does Sinatra or Padrino use Rack middleware? That's what our gem uses so it should be interchangeable if things are set up correctly on our end. |
If there is a demand, I can create one for Phoenix (Elixir). Let me know. |
@sivsushruth Thanks! I haven't heard of any demand yet for that framework. |
@sivsushruth yes please .... 👍 |
Yep, it uses Rack.
Excellent, though we've gone for the generic Apache one for now. |
@sivsushruth was elixir/Phoenix support ever added? |
Is there a document about Prerender.io? I want to implement a custom middle-ware for a framework but it is not easy to understand how to send request to Prerender.io. |
@mostafabarmshory the Prerender service API is pretty simple. Here's a short nginx config showing the basics: https://gist.github.com/thoop/8165802 The prerender-node middleware should be pretty easy to follow through the code to see the other features we built into that middleware... like whitelisting, etc |
Hey @thoop which middle ware work with Angular 4. |
@ggoyal2018 all of these middleware should work perfectly with Angular 4 depending on which server you are using! Let us know if you run into any issues at [email protected] |
Hi @thoop! First of all, thank you for Prerender! I just implemented it for our app, and it works nicely. For this, I implemented a Python middleware for Starlette/ASGI frameworks. I released it in open source, hoping it'll be of use for other developers out there: https://github.com/BeeMyDesk/prerender-python-starlette Feel free to add it to the community middlewares list 🙂 Cheers! |
I'll keep this list updated as more middleware is added.
Feel free to implement one of the frameworks that people are asking for!
Add a comment if you'd like to see more middleware in another language/framework, and I'll add it to the list!
The text was updated successfully, but these errors were encountered: