spray-prerender


License

License

GroupId

GroupId

com.github.jarlakxen
ArtifactId

ArtifactId

spray-prerender_2.10
Last Version

Last Version

1.0
Release Date

Release Date

Type

Type

jar
Description

Description

spray-prerender
spray-prerender
Project URL

Project URL

https://github.com/Jarlakxen/spray-prerender
Project Organization

Project Organization

com.github.jarlakxen
Source Code Management

Source Code Management

https://github.com/Jarlakxen/spray-prerender

Download spray-prerender_2.10

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.jarlakxen/spray-prerender_2.10/ -->
<dependency>
    <groupId>com.github.jarlakxen</groupId>
    <artifactId>spray-prerender_2.10</artifactId>
    <version>1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.jarlakxen/spray-prerender_2.10/
implementation 'com.github.jarlakxen:spray-prerender_2.10:1.0'
// https://jarcasting.com/artifacts/com.github.jarlakxen/spray-prerender_2.10/
implementation ("com.github.jarlakxen:spray-prerender_2.10:1.0")
'com.github.jarlakxen:spray-prerender_2.10:jar:1.0'
<dependency org="com.github.jarlakxen" name="spray-prerender_2.10" rev="1.0">
  <artifact name="spray-prerender_2.10" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.jarlakxen', module='spray-prerender_2.10', version='1.0')
)
libraryDependencies += "com.github.jarlakxen" % "spray-prerender_2.10" % "1.0"
[com.github.jarlakxen/spray-prerender_2.10 "1.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.10.4
io.spray : spray-client jar 1.2.1

provided (3)

Group / Artifact Type Version
com.typesafe.akka : akka-actor_2.10 jar 2.2.3
io.spray : spray-can jar 1.2.1
io.spray : spray-routing jar 1.2.1

test (4)

Group / Artifact Type Version
org.specs2 : specs2-core_2.10 jar 2.3.10
org.specs2 : specs2-junit_2.10 jar 2.3.10
io.spray : spray-testkit jar 1.2.1
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

Spray Prerender

Are you using backbone, angular, emberjs, etc, but you're unsure about the SEO implications?

Use this Spray directive that prerenders a javascript-rendered page using an external service and returns the HTML to the search engine crawler for SEO.

Note: If you are using a # in your urls, make sure to change it to #!. View Google's ajax crawling protocol

Note: Prerender service will make a request to your server to render the HTML.

1- Add this dependency on your project:

    "com.github.jarlakxen" %% "spray-prerender" % "1.1"

2- Add this line to your code

    implicit val prerenderConfig = routePrerender("10.254.169.132:9290", actorRefFactory)


     get {
      prerender(prerenderConfig) {
        mustache("/index")
      }
    }

Note: You need to extends or import PrerenderDirectives. Note: The first parameter of routePrerender is the ip and port of the Prerender server.

How it works

  1. Check to make sure we should show a prerendered page
    1. Check if the request is from a crawler (agent string)
    2. Check to make sure we aren't requesting a resource (js, css, etc...)
  2. Make a GET request to the prerender service (phantomjs server) for the page's prerendered HTML
  3. Return that HTML to the crawler

Versions

Version
1.0