繁体   English   中英

在我刷新整个页面之前,getStaticProps 不会在 iis 上触发

[英]getStaticProps does not fire on iis until I refresh whole page

我在项目中使用了 nextjs getStaticProps 功能,一切正常。

将 Static 文件上传到 iis 后,在我配置 urlRewrite 模块之前,该功能无法使用。 所以当我第一次访问一个页面时,getStaticProps 在我刷新整个页面之前不会被触发。 以下是我用于 urlRewrite 模块的代码:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="ReactRouter Routess" stopProcessing="true">
                <match url="product\/(\d+)\/.*" />
                    <action type="Redirect" url="/product/{R:1}.html" />
            </rule>
          </rules>
        </rewrite>
    </system.webServer>
</configuration> 

为什么以及如何解决这个问题

getStaticProps在构建过程中运行,当给定页面被预渲染时,而不是在请求期间(请参阅此处的更多详细信息) - 这就是为什么您没有看到它在您的第一个请求中执行的原因。 如果您希望此页面始终"fresh" ,请将getStaticProps替换为getServerSideProps (更多信息在这里)。

getStaticProps只能在页面重新验证时在构建后运行 - 由于revalidate期结束或重新验证以编程方式触发。 在您的情况下,这可能是触发此 function 执行的原因。 您可以在此处了解有关此过程的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM