2
A
回答
1
- 安装IIS node:
- 安装URL rewrite module。
在
<configuration>/<system.webServer>
创建具有以下声明的Web.config:<handlers> <add name="iisnode" path="server.js" verb="*" modules="iisnode" /> </handlers> <rewrite> <rules> <rule name="Server-side rendering" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="server.js" /> </rule> </rules>
您可以选择排除node_modules所以它们不会被IIS服务:
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
创建的node.js服务器,例如用express.js:从 '表示'
const的应用程式=快递()
应用
进口明示。 get('*',(req,res)=> { /在这里呈现应用/ });
app.listen(process.env.PORT);
渲染你的应用程序的服务器端,例如这样的:
const App = ({message}) => <div>Hello {message}</div>
const template = ...
- 配置构建工具和路由器。
记得绑定到process.env.PORT
,因为它通过IIS传递到您的服务器!
(StackOverflow上吃我的嵌入JS代码...所以请复制并使用字符串插值)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<div id="app">${body}</div>
</body>
<script async src="/bundle.js"></script>
</html>
import { renderToString } from 'react-dom/server'
const renderedComponent = renderToString(<App message={`from ${req.url}`} />)
const html = template(renderedComponent)
res.send(html)
您可以为Webpack创建两个独立的构建目标 - 一个用于客户端,另一个用于服务器。您还应该处理应用内路由,但这取决于您正在使用的库。
2
你仍然需要在你的服务器上有node.js。 IIS只会代理你的应用程序。
有不同的方式如何实现这一目标:
1)随着IISNode project:
说明你可以在这里找到: http://www.amazedsaint.com/2011/09/creating-10-minute-todo-listing-app-on.html
2)随着ARR(应用程序请求路由)模块IIS :
说明你可以在这里找到:https://adamtuttle.codes/add-node-to-existing-iis-server/
相关问题
- 1. React Relay和服务器端渲染
- 2. React服务器端渲染vs webpack
- 3. React服务器端和客户端渲染不是无缝的
- 4. React JS:从服务器渲染迁移到纯客户端
- 5. 使用服务器端渲染渲染两次React组件
- 6. Next.js + Redux服务器端渲染:有数据,但不在服务器端渲染
- 7. 服务器端渲染在客户端重新渲染
- 8. 渲染JavaScript服务器端
- 9. React服务器端渲染校验和警告
- 10. React/Redux同构/服务器端渲染和媒体查询
- 11. React/Redux中服务器端渲染的要点是什么?
- 12. ReactJS服务器端热渲染(webpack-dev-server)渲染
- 13. React服务器端渲染后端请求
- 14. 无法在React服务器端渲染中处理UnhandledPromiseRejectionWarning
- 15. 客户端渲染和跳过服务器渲染方法?
- 16. 服务器端渲染HTML模板
- 17. React路由器服务器端与Fluxxor渲染
- 18. React路由器v4(找不到页面)服务器端渲染
- 19. React服务器端渲染器省略setState回调函数?
- 20. “服务器端渲染”是指双方渲染?
- 21. React服务器端渲染与昂贵的初始API调用
- 22. 使用express和es6来渲染反应和jsx服务器端
- 23. 服务器端渲染与ReactDOM.hydrate
- 24. React服务器端渲染状态如何工作?
- 25. 服务器端预渲染React或Angular 2?
- 26. 服务器端使用React进行渲染
- 27. React服务器端渲染 - window.initialState - 如何防止XSS?
- 28. 使用Spring Boot进行服务器端渲染React
- 29. react-bootstrap - 如何使用服务器端渲染?
- 30. Semantic UI React是否支持服务器端渲染?
很棒的回答。选项2允许我们运行反应开发服务器,其中包括实时重新加载等所有优点,但是在自定义域下(例如不在本地主机上)。 –