Strapi and Next.js website experiencing issues with updating blog content

I currently have a Next.js application running in production that is powered by Strapi for content management. The content is fetched using the getStaticProps function on each of the two pages in my small blog.

However, I've noticed that when new content is created or existing content is updated, the Next.js app fails to fetch the latest changes. It seems like this might be happening because of the initial fetching at build time.

Is there a way to dynamically fetch content on the client side while still benefiting from SEO advantages? Any suggestions or ideas would be greatly appreciated!

Thank you in advance! :)

Answer №1

Thinking about implementing a revalidate strategy for Incremental Static Regeneration to update outdated content.

https://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration

// This function runs during the build phase on the server.
// It may run again, on a serverless function, if
// revalidation is enabled and a new request occurs
export async function getStaticProps() {
  const res = await fetch('https://.../posts')
  const posts = await res.json()

  return {
    props: {
      posts,
    },
    // Next.js will try to update the page:
    // - When a request is made
    // - At most once every 10 seconds
    revalidate: 10, // In seconds
  }
}

If this approach doesn't align with your content updating needs, you may need to switch to server-side rendering and fetching data per request.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Difficulty in implementing jQuery accordion height style using either content or fill option

What I am looking for is to have only one specific div in my accordion (device properties) change its height based on the content. I have also noticed that if I use Firebug to remove the height property of the device div, it adjusts the height correctly. ...

There is no XHR request sent when invoking the http function

I am facing challenges in configuring a service in angular2 to interact with a REST backend. My attempt at setting up a basic example for sending requests to a rest backend and handling the response seems to be on track. The Service is being called correc ...

What is the process for appending a value to an array of JSON objects?

I have a JSON array containing objects which I need to pass the values to the DataTables. [{ _id: '58a2b5941a9dfe3537aad540', Country: 'India', State: 'Andhra Pradesh', District: 'Guntur', Division: ...

Checking for offline status in a Cordova app using Angular

I have implemented the following code to determine whether my Cordova application is online or offline. var networkState = navigator.connection.type; var states = {}; states[Connection.UNKNOWN] = 'Unknown'; states[Connection.ETHERNET] = ' ...

Utilizing jQuery, Ajax, and PHP to Transfer Both FormData and String Data

I want to pass a FormData value and some String values to a PHP page. Below is my JavaScript code: $.ajax({ url: 'upload-pic.php', type: 'post', data: { type : type, ...

Exploring Latitude, Longitude, and SVGs

In my attempt to visually represent an airport and its airspace using an SVG, I have encountered a persistent issue with the y-axis and its conversion. Despite verifying the coordinates multiple times, the positioning of the lines representing the runways ...

Dealing with a multitude of redirects for dynamic pages that include optional slugs in Next.js

My website has a variety of dynamic routes that generate a large number of pages. These pages are structured in URLs like: /artists/[id]/[slug] or /concerts/[year]/[month]/[day]/[slug]. Currently, the page structure mirrors these routes: /pages/artists/[id ...

What is the best way to create an array containing dictionaries?

Hey there, I'm having an issue with my React.js code. Here's what I have: const array1 = [1, 4]; const map1 = array1.map(x =>{'x2': x * 2, 'x3': x * 3}); console.log(map1); // expected output: Array [{'x2': , 1, ...

Transition smoothly between two images with CSS or jQuery

I am working on a project where I need to implement a hover effect that fades in a second image above the initial image. The challenge is to ensure that the second image remains hidden initially and smoothly fades in without causing the initial image to fa ...

Test success despite Cypress assertion failing

Conducting integration tests on an API. Encountering a scenario where one test passes while another fails despite having similar assertions. Feeling confused about the handling of async/promises in cypress. context("Login", () => { // This t ...

List of duplicated BLE devices detected in network scanning

Greetings! I am currently working on an Ionic project named BLE Scanner. After facing some challenges, I finally managed to connect to the devices. Below is the code snippet that I discovered online: home.ts (please ignore the DetailPage) import { Compon ...

Difficulty in obtaining the child index upon clicking

I am currently working on retrieving the index of a child element within a parent element. While following a solution here, I encountered an issue with an infinite loop. This is the code I have written so far: var div = document.getElementById("spans ...

How to insert a JSON object into a nested array using JavaScript

I am currently facing an issue with adding a JSON object based on specific conditions to an array, which is then used to create a WINJSList. The problem arises when I try to access the elements of the list or array after using the array.push method. My goa ...

Significant delay in processing second jQuery Ajax call

Attempting a simple Ajax call with page content refresh using the following code snippet: $("a.ajaxify-watched").bind("click", function(event) { $item = $(this); $.ajax({ url: $(this).attr("href"), global: false, type: "G ...

Avoid using jQuery to trigger the .change event

I am dealing with two separate functions: one updates an input field, and the other shows an image if the input value is a valid image. Unfortunately, I cannot combine them into a single function because they operate on different pages (I have just placed ...

Assign a value to a dropdownlist in Javascript

I am facing an issue with setting the selected value of a dropdownlist that is populated by a webservice using ajax cascading dropdown. It seems like the values are not available when the javascript code runs, even though I have placed it at the bottom o ...

Angular $watch not working as expected

I have a specific directive code: .directive('myDirective', function(){ 'use strict'; return { restrict: 'A' , link: function(scope, element, attrs) { var count = 0; function d ...

Retrieving items from an array based on their class association

My challenge involves handling a list of items obtained using the following code: var searchResultItems = $(resultContainerId + ' li'); Each item in the search results can have different classes. How can I extract all items with a specific clas ...

Ensure that the user remains within the current div when they click the submit button, even if the textbox is

For the past 48 hours, I've been grappling with an issue on my HTML page that features four divs. Each div contains three input fields and a button. The problem arises when a user leaves a text box empty upon submitting - instead of staying in the sam ...

Verify whether the division contains any elements and does not include specific elements

I previously opened a similar thread, but with the condition that the div does not contain a second element within it. So my previous question was as follows: I have some code that looks like this: <p class="elementWrap"> <label>Phone</l ...