Custom Action Opens a Preview URL on Wrong Domain

17 replies
Last updated: Jan 31, 2022
Hey there, I have a custom action that opens a preview URL, but it keeps opening my URL at the studio domain, instead of the one specified…
You can see it here, it’s supposed to use the
remoteURL
but on deployed studios it’s now opening it without this, causing it to open the
/api/preview?token=xxx
at the studio domain
sorry, wrong example
user A
, I just updated it with a gist of the correct one.
I have a client studio that has this:
const remoteURL = '<https://xxx.vercel.app>'
const localURL = '<http://localhost:3000>'
const frontendURL =
  window.location.hostname === 'localhost' ? localURL : remoteURL
and it’s opening it at
<https://xxx.sanity.studio>
Don't suppose there is any chance you are viewing it from
127.0.0.1
or
0.0.0.0
or some other local, non-localhost hostname? 😅
(maybe
window.location.protocol === 'http:' ? localURL : remoteURL
would be slightly more robust in this case?)
seems to only be on a deployed studio for some reason
How is the
remoteURL
getting set? Statically? Environment variable?
going to try clearing node_modules and dist to see if it helps!
static
Super weird. There is nothing Sanity-specific about the code that determines the URL or opens the window, as far as I can tell from your gist.
If I were to guess, the
remoteURL
is somehow null/empty string, but if it's defined statically that doesn't make sense
thanks for clarifying
user Z
! I’m wondering if checking
localhost
is for whatever reason erroring when deploying
I just redeployed again, and hard refreshed and this time it’s taking the correct domain name
it’s just super odd since I was able to reproduce on the deployed studio after the client alerted me to it (which I had just showed them how to preview last week using the deployed studio during a previous build)

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Was this answer helpful?