Могу ли я создать маршруты с реакции-маршрутизатором для сайта github-pages?
Итак, я создал SPA с использованием React и React-Router и перенес его на страницы github, но ни один из маршрутов, которые я написал, не работает, когда я обновляю или нажимаю обратно в своем браузере. У меня была такая же проблема, когда я обслуживал страницу локально, но затем последовалэтот так ответ и сделал файл server.js, который обеспечивал перенаправление на мою статическую HTML-страницу на каждом маршруте. Вот как выглядит файл:
"use strict";
let express = require('express');
let path = require('path');
let app = express();
app.use(express.static('public'));
app.get('/contact', function(req, res){
res.sendFile('public/index.html', { root: __dirname });
})
app.get('/about', function(req, res){
res.sendFile('public/index.html', { root: __dirname });
})
app.get('*', function(req, res){
res.sendFile('public/index.html', { root: __dirname });
})
app.listen(8080, function(){
console.log('Listening on port 8080!')
})
Теперь моя проблема в том, что когда я перемещаю проект на страницы github, вся эта логика игнорируется, маршрутизация github вступает во владение, и у меня возникает та же проблема: я не могу обновиться или перейти прямо к/contact
или же/about
, Я знаю, что это кажется очевидной проблемой, с которой нужно столкнуться, поскольку страницы github предназначены только для размещения статических сайтов, но я видел людей, намекающих на другие способы создания статической страницы для каждого маршрута, такие как ответ вэто реддит пост, но я понятия не имею, как это сделать.
Я должен также упомянуть это, потому что у меня уже есть сайт вuser-name.github.io
, так что этот сайт размещен наuser-name.github.io/projects
делая это моим/
маршрут. Я понятия не имею, если это имеет какое-то значение, я просто подумал, что должен упомянуть об этом.
Я думаю, что я в значительной степени исчерпал все варианты, чтобы попытаться успешно разместить это на gh-страницах, и я знаю, что есть такие проекты, какОдностраничные приложения для страниц GitHub чтобы попытаться решить эту проблему, но я просто хотел посмотреть, повезло ли кому-нибудь из них сделать это, прежде чем прибегнуть к этому.
К вашему сведению, вот мойapp.js (содержит логику маршрутизации):
import React, {Component} from 'react';
import {render} from 'react-dom';
import {Router, Route, browserHistory, IndexRoute} from 'react-router';
//Import custom components
import About from '../components/about.js';
import Contact from '../components/contact.js';
import Sidebar from '../components/sidebar.js';
import Imagelist from '../components/image-list.js';
render(
<Router history={browserHistory}>
<Route path="/" component={Sidebar}>
<IndexRoute component={Imagelist}/>
<Route path="/about" component={About}/>
<Route path="/contact" component={Contact}/>
</Route>
</Router>,
document.getElementById('content')
);
Любая помощь с этим была бы очень признательна и рада включить больше кода, если это будет полезно.