{"action":"created","issue":{"url":"https://api.github.com/repos/hrzon/terrace/issues/15","repository_url":"https://api.github.com/repos/hrzon/terrace","labels_url":"https://api.github.com/repos/hrzon/terrace/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/hrzon/terrace/issues/15/comments","events_url":"https://api.github.com/repos/hrzon/terrace/issues/15/events","html_url":"https://github.com/hrzon/terrace/issues/15","id":361995025,"node_id":"MDU6SXNzdWUzNjE5OTUwMjU=","number":15,"title":"Search Engine Optimization","user":{"login":"hrzon","id":15189621,"node_id":"MDQ6VXNlcjE1MTg5NjIx","avatar_url":"https://avatars1.githubusercontent.com/u/15189621?v=4","gravatar_id":"","url":"https://api.github.com/users/hrzon","html_url":"https://github.com/hrzon","followers_url":"https://api.github.com/users/hrzon/followers","following_url":"https://api.github.com/users/hrzon/following{/other_user}","gists_url":"https://api.github.com/users/hrzon/gists{/gist_id}","starred_url":"https://api.github.com/users/hrzon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hrzon/subscriptions","organizations_url":"https://api.github.com/users/hrzon/orgs","repos_url":"https://api.github.com/users/hrzon/repos","events_url":"https://api.github.com/users/hrzon/events{/privacy}","received_events_url":"https://api.github.com/users/hrzon/received_events","type":"User","site_admin":false},"labels":[{"id":1020170711,"node_id":"MDU6TGFiZWwxMDIwMTcwNzEx","url":"https://api.github.com/repos/hrzon/terrace/labels/enhancement","name":"enhancement","color":"a2eeef","default":true},{"id":1020170712,"node_id":"MDU6TGFiZWwxMDIwMTcwNzEy","url":"https://api.github.com/repos/hrzon/terrace/labels/help%20wanted","name":"help wanted","color":"008672","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-20T02:30:45Z","updated_at":"2018-09-21T09:28:16Z","closed_at":null,"author_association":"OWNER","body":"Search engines cannot get pages of my website.\r\n\r\nThere are two ways to solve this problem.\r\n\r\nThe first one is SSR(Server Side Rendering), and the second one is pre-rendering.\r\n\r\nSSR needs a support of a server, but my web app must be run on the AWS S3 storage. So pre-rendering is the appropriate choice.\r\n\r\nThough it's hard to apply it to my website.\r\n\r\n`prerender-spa-plugin` might be a key to solve this problem.\r\n\r\nBelow are links.\r\n\r\nhttps://vuejsdevelopers.com/2017/04/01/vue-js-prerendering-node-laravel/\r\n\r\nhttps://markus.oberlehner.net/blog/how-to-pre-render-vue-powered-websites-with-webpack/\r\n\r\nhttps://codeburst.io/the-easiest-way-to-improve-your-vue-js-application-part-1-51f068652872"},"comment":{"url":"https://api.github.com/repos/hrzon/terrace/issues/comments/423472620","html_url":"https://github.com/hrzon/terrace/issues/15#issuecomment-423472620","issue_url":"https://api.github.com/repos/hrzon/terrace/issues/15","id":423472620,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMzQ3MjYyMA==","user":{"login":"hrzon","id":15189621,"node_id":"MDQ6VXNlcjE1MTg5NjIx","avatar_url":"https://avatars1.githubusercontent.com/u/15189621?v=4","gravatar_id":"","url":"https://api.github.com/users/hrzon","html_url":"https://github.com/hrzon","followers_url":"https://api.github.com/users/hrzon/followers","following_url":"https://api.github.com/users/hrzon/following{/other_user}","gists_url":"https://api.github.com/users/hrzon/gists{/gist_id}","starred_url":"https://api.github.com/users/hrzon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hrzon/subscriptions","organizations_url":"https://api.github.com/users/hrzon/orgs","repos_url":"https://api.github.com/users/hrzon/repos","events_url":"https://api.github.com/users/hrzon/events{/privacy}","received_events_url":"https://api.github.com/users/hrzon/received_events","type":"User","site_admin":false},"created_at":"2018-09-21T09:28:16Z","updated_at":"2018-09-21T09:28:16Z","author_association":"OWNER","body":"The problem is almost solved.\r\n\r\nThe point of the problem is hash-mode of cue-router. Hash mode is a default option, and if a web app is implemented using hash-mode, it is impossible to generate pre-rendered html files.\r\n\r\nI modified my website to use history mode rather than hash-mode.\r\n\r\nAfter the mode is set, pre-renderer can generate whole pages.\r\n\r\nThere are two options for pre-renderer.\r\n\r\n1. [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin)\r\n2. [react-snap](https://www.npmjs.com/package/react-snap)\r\n\r\nprerender-spa-plugin is a canonical option for VueJS project. I have to write all pages which need pre-rendering to `vue.config.js` manually.\r\n\r\nreact-snap is more convenient than the first option because it crawls whole web app and generate html pages, but it is slower than first option because it needs crawling.\r\n\r\nNow, I've succeeded to solve problem using the second option. I am going to use the first option and see how much a building speed differ."}}
{"actor":{"display_login":"hrzon"}}