有一个将react应用部署到S3的视频教程。这将很容易在s3上部署应用程序,但我们需要在react应用程序中做一些更改。由于它很难遵循,我总结为步骤。是这样的:
>
添加bucket策略,这样每个人都可以访问react应用程序。单击created bucket->properties->在其中单击“编辑存储桶策略”。下面是bucket策略的示例。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow Public Access to All Objects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<YOUR_BUCKET_NAME>/*"
}
]
}
如果需要日志,请创建另一个bucket并在属性中的logs部分下设置bucket名称。
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName> [YOUR_ENDPOINT] </HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
browserHistory.listen(location => {
const path = (/#!(\/.*)$/.exec(location.hash) || [])[1];
if (path) {
history.replace(path);
}
});
上面的代码将移除前缀,并将历史记录推送到正确的路由上(HTML 5浏览器历史记录)。例如:类似这样的东西http://s3.hosting/#!/event将更改为http://s3.hosting/event。这样做可以使react-router理解并相应地更改路由。下面是我的main.js文件,以便更好地理解:
import React from 'react';
import ReactDOM from 'react-dom';
import {createStore, compose, applyMiddleware} from 'redux';
import {Provider} from 'react-redux'
import {Router, Route, IndexRoute, browserHistory, useRouterHistory} from 'react-router';
import {syncHistoryWithStore} from 'react-router-redux';
import createLogger from 'redux-logger';
import thunk from 'redux-thunk';
const logger = createLogger();
const createStoreWithMiddleware = applyMiddleware(thunk, logger)(createStore);
const store = createStoreWithMiddleware(reducers);
const history = syncHistoryWithStore(browserHistory, store);
browserHistory.listen(location => {
const path = (/#!(\/.*)$/.exec(location.hash) || [])[1];
if (path) {
history.replace(path);
}
});
因此上传Browserialed或webpacked react应用程序(app.js文件)将满足所需的需求。因为我发现很难收集所有的东西,所以我将所有这些集合为步骤。
问题内容: 我已经通过很多的这样的堆栈溢出类似的问题了一个。每个人对部署react应用都有不同的看法。 但是这个问题是针对那些使用 redux , react-router 和 react-router-redux的人的 。我花了很多时间来找出承载单页应用程序的正确方法。我在这里汇总所有步骤。 我写了以下答案,其中包含将react-redux应用程序部署到S3的步骤。 问题答案: 有一个视频教程,
在CRA使用网络字体有问题,在开发模式下它是这样加载的 字体已加载 但是当部署时,在生产模式下,它似乎根本没有加载。伙计们,有什么想法吗?这是我的css。
和 Flux 类似,Redux 也是需要注册一个回调函数 store.subscribe(listener) 来获取 State 的更新,然后我们要在 listener 里面调用 setState() 来更新 React 组件。 Redux 官方提供了 react-redux 来简化 React 和 Redux 之间的绑定,不再需要像 Flux 那样手动注册/解绑回调函数。 接下来看一下是怎么做到
我有这个问题,一个应用程序耳朵有这个错误,我是一个weblogic12c的新管理员,有人帮助我吗??? 这是一个标准安装Weblogic 12c
我已经从https://www.tutorialspoint.com/reactjs/reactjsjsx.htm创建了一个基本的React应用程序。这里,我想在基于Apache的服务器上运行这个测试代码,我知道我需要创建一个可分发的构建,但我不知道如何做到这一点,也找不到清晰的说明。 我在Apache服务器上看到过这篇文章React,js,但它没有什么更多的指导方针
我在Azure上的Linux应用服务上部署了一个响应js网站。但它没有部署在应用服务上。我使用pm2命令在linux环境下运行应用程序 pm2 serve/home/site/wwwroot/--无守护进程 但在错误日志中,未找到pm2的错误。接下来呢 容器没有响应端口: 8080上的HTTP ping,站点启动失败。 站点的容器已退出,站点启动失败