【发布时间】:2018-06-08 17:48:18
【问题描述】:
首先,很多这种技术对我来说都是新的,所以我为这个菜鸟问题道歉。另外,这是我在 SO 上的第一篇文章(经过多年阅读),请原谅格式。
我有一个通过 MSVS 2017 运行的 Web 应用程序。我正在使用 React.js 编写我的前端。通过 nuget 安装适当的软件包后,当我在本地开发机器上运行调试和发布版本(使用 iisexpress)时,我有一些东西可以工作。
但是,在我提交源代码更改并将其推送到测试服务器 (IIS) 后,应用程序运行良好。但是,从测试服务器返回的 JSX 文件不会被转译。我只是得到原始的 JSX 文件。而在我的本地机器上,返回的文件被转译。
我有一个带有单个静态 Configure 方法的 ReactConfig.cs 文件,我可以在其中调用通过 ReactSiteConfiguration.Configuration.AddScript 添加我的 JSX 文件,但这似乎是不必要的,因为即使它被注释掉了。在我的 ReactConfig.cs 文件的顶部,我有类似的东西:
[assembly: webActivatorEx.PreApplicationStartMethod(typeof(MyApp.Api.Controllers.MyController), "AutoMapperStart")]
那么,剩下的问题是我的开发机器上的转译是如何发生的,而不是部署机器上。
在我的 web.config 文件中,我都尝试了:
<httpHandlers>
<add verb="GET" path="*.jsx" type="React.Web.BabelHandlerFactory, React.Web" />
</httpHandlers>
和
<remove name="Babel" /><add name="Babel" verb="GET" path="*.jsx" type="React.Web.BabelHandlerFactory, React.Web" preCondition="integratedMode" /></handlers>
但在部署的服务器上似乎两者都没有影响。
如果有人对我接下来应该看什么有建议,将不胜感激。
更新: 我注意到允许我的开发环境进行转换的相关项目是上面我的 web.config 文件中的第二个代码部分。但是,我在服务器上看不到相同的行。 web.config 文件是否通常在每次部署时“手动编辑”?
【问题讨论】:
标签: reactjs.net