Итак, я создал SPA, используя React и React-Router, и перенаправил его на страницы github, но ни один из маршрутов, которые я написал, не работает, когда я обновляюсь или нажимаю обратно в своем браузере. У меня была такая же проблема, когда я показывал страницу локально, а затем следил за ней до this SO answer и сделал файл server.js, который обеспечивал перенаправление на мою статическую HTML-страницу по каждому маршруту. Вот что файл выглядит следующим образом:Могу ли я создавать маршруты с помощью реактивного маршрутизатора для сайта github-pages?
"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 предназначены для размещения только статических сайтов, но я видел, как люди намекали на другие способы создания статической страницы для каждого маршрута, например ответ в this reddit post, но Я не знаю, как это сделать.
Следует также упомянуть об этом, потому что у меня уже есть сайт по адресу user-name.github.io
, поэтому этот сайт размещается по адресу user-name.github.io/projects
, что делает мой маршрут /
. Я понятия не имею, если это имеет значение, я просто подумал, что должен упомянуть об этом.
Я думаю, что я довольно сильно исчерпал каждый вариант, чтобы попытаться успешно разместить это на gh-страницах, и я знаю, что есть проекты, такие как Single Page Apps for GitHub Pages, чтобы попытаться исправить эту проблему, но я просто хотел посмотреть, есть ли у кого там если удастся это сделать, прежде чем прибегать к этому.
FYI, вот мой 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')
);
Любая помощь с этим была бы оценена & с удовольствием включают в себя больше кода, если полезно.
Экспресс - это базовая структура для написания маршрутов api ... чего вы пытаетесь достичь с помощью статических страниц gh? вы хотите, чтобы gh указывает точки на api в другом домене? –
Я использовал выражение, потому что это было предложено в другом ответе SO, но да, я знаю, что я не могу включить эту логику, когда я нажимаю ее на gh-страницы. Просто пытаюсь выяснить, есть ли какие-либо советы по созданию статической страницы для каждого маршрута. –