【问题标题】:No transpilation on IIS production server在 IIS 生产服务器上没有编译
【发布时间】: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


    【解决方案1】:

    所以,这就是我最终发现的适合我的方法。

    首先,是的,web.config 文件作为模板部署。然后根据需要手动配置。

    其次,更重要的是,让服务器将 JSX 渲染为纯 JS 有两个部分。

    1. 我需要 web.config 文件中的以下内容:
    <system.webServer>
        <handlers>
            <remove name="Babel" />
            <add name="Babel" verb="GET" path="*.jsx"
                type="React.Web.BabelHandlerFactory, React.Web"
                preCondition="integratedMode"/>
        </handlers>
    </system.webServer>
    
    1. 最后,在 assemblyBinding 部分:
      <dependentAssembly>
        <assemblyIdentity name="JavaScriptEngineSwitcher.Core" publicKeyToken="c608b2a8cc9e4472" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.4.9.0" newVersion="2.4.9.0" />
      </dependentAssembly>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 2014-12-21
      • 1970-01-01
      相关资源
      最近更新 更多