Migrate to Netlify Today

Netlify announces the next evolution of Gatsby Cloud. Learn more

ContactSign Up
Official Plugin
View plugin on GitHub

gatsby-plugin-remove-trailing-slashes

Please Note: This plugin will soon be deprecated, please use Gatsby’s trailingSlash option. Read the documentation to learn more.

This plugin removes trailing slashes from your project’s paths. For example, yoursite.com/about/ becomes yoursite.com/about.

Important considerations

This plugin is intended to remove trailing slashes from paths generated by Gatsby itself.

This however does not prevent the resolution of pages that have trailing slashes, due to the way browsers are built to interpret URLs as paths.

This means that a user will need to take the extra step of ensuring that all router links direct towards paths that do not end in a slash.

For example, <Link to="/about/"> will render the view related to /about but will display as /about/ in the browsers address bar.

This is an important factor when relying on path driven logic, such as in the use case of the Link components activeClassName and activeStyle props.

For example, if the current route is /about, the component <Link to="/about/" activeStyle={{ color: 'rebeccapurple' }}> wouldn’t match because of the slash.

Netlify Trailing Slashes

Netlify users should also take into account that the service will match paths to redirect rules regardless of whether or not they contain a trailing slash, potentially causing infinite redirect loops and unexpected behaviors.

This can be negated through the use of their Pretty URL feature, which rewrites URLs to pretty URLs.

Please see the Netlify docs for more information: https://docs.netlify.com/routing/redirects/redirect-options/#trailing-slash

Usage

Install:

npm install --save-dev gatsby-plugin-remove-trailing-slashes

Then configure via gatsby-config.js.

{
  ...
  plugins: [
    ...,
    `gatsby-plugin-remove-trailing-slashes`,
  ]
}

That’s it.

© 2024 Gatsby, Inc.