Skip to content
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

Draft : Add prerender.io to Static doc #491

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions content/doc/applications/static/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,34 @@
RewriteRule ^ /index.html
```

## Prerendering with Prerender.io

Check failure on line 69 in content/doc/applications/static/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static/_index.md#L69

[Vale.Spelling] Did you really mean 'Prerendering'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Prerendering'?", "location": {"path": "content/doc/applications/static/_index.md", "range": {"start": {"line": 69, "column": 4}}}, "severity": "ERROR"}

When you use a SPA framework, you are using Client side rendering.
One of the problem of this method is poor SEO as search engine crawler have more difficulty reading the content of this type of application.

Check notice on line 72 in content/doc/applications/static/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static/_index.md#L72

[Google.Acronyms] Spell out 'SEO', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'SEO', if it's unfamiliar to the audience.", "location": {"path": "content/doc/applications/static/_index.md", "range": {"start": {"line": 72, "column": 43}}}, "severity": "INFO"}
To avoid this problem, you can try to prerender your application.

Check failure on line 73 in content/doc/applications/static/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static/_index.md#L73

[Vale.Spelling] Did you really mean 'prerender'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'prerender'?", "location": {"path": "content/doc/applications/static/_index.md", "range": {"start": {"line": 73, "column": 39}}}, "severity": "ERROR"}

If you want to Prerender your application on Clever Cloud, one solution is to use [Prerender.io](https://prerender.io/).

Check failure on line 75 in content/doc/applications/static/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static/_index.md#L75

[Vale.Spelling] Did you really mean 'Prerender'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Prerender'?", "location": {"path": "content/doc/applications/static/_index.md", "range": {"start": {"line": 75, "column": 16}}}, "severity": "ERROR"}
To use it with our static applications, you need a `.htaccess` file like this at the root of your project:

Check warning on line 76 in content/doc/applications/static/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/doc/applications/static/_index.md#L76

[Google.We] Try to avoid using first-person plural like 'our'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'our'.", "location": {"path": "content/doc/applications/static/_index.md", "range": {"start": {"line": 76, "column": 16}}}, "severity": "WARNING"}

```ApacheConf
<IfModule mod_headers.c>
RequestHeader set X-Prerender-Token "<YOUR_TOKEN>"
RequestHeader set X-Prerender-Version "[email protected]"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On

<IfModule mod_proxy_http.c>
RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp|redditbot|applebot|flipboard|tumblr|bitlybot|skypeuripreview|nuzzel|discordbot|google\ page\ speed|qwantify|bitrix\ link\ preview|xing-contenttabreceiver|google-inspectiontool|chrome-lighthouse|telegrambot [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_
RewriteCond %{REQUEST_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|\.ttf|\.woff|\.svg))

RewriteRule ^(index\.html|index\.php)?(.*) http://service.prerender.io/%{REQUEST_SCHEME}://%{HTTP_HOST}$2 [P,END]
</IfModule>
</IfModule>
```

## Apache Configuration with `CC_WEBROOT`

If you set the `CC_WEBROOT = /<web-folder>` environment variable, make sure you put your `.htaccess` file at the root of your `/<web-folder>`. This is where Apache will look for directives when you deploy an application in a Static runtime.
Expand Down
Loading