I went through this same process when I first started reading . I could play well enough, knew the notes on the neck and the notes on the clef but had a hard time reading. I eventually solved this fairly easily (I'll explain in a sec) and found that the main problem occurs from the number of mental processes going on. Looking at the note on the stave, translating to a note name, C for example, then looking at the neck and thinking "where's that C?" then "There's that C" then playing it. Eventually your reading becomes a shorter process of seeing a note and KNOWING it's that fret on that string. This eventually diversifies into knowing that note is that fret on that string AND that other fret on that other string AND that other fret on that other string so you can make a decision on the fly without much of a problem.
Piano is a little easier because there's only one of each note so the processes are already cut down. That note equals that key. When I see a note on the stave I have a spontaneous image of the note I need to play on the neck.
The way I practised my reading was a fairly popular system of separating the pitch and rhythm so there's no over complicating and confusing either process of learning. Look at the frets 1-5 as a kind of first position. Then look at each string separately, just natural notes, no sharps or flats. We end up with:
E, F, G, A on the E string.
B, C, D on the A string
E, F, G on the D string
A, B, C on the G string
Now take an empty sheet of manuscript paper (or write out on a program like Sibelius or Finale) and write random notes in whole notes/Semibreves for one string. So you get a page full of random notes from the E string: E, F, G, A
Then a full page of the A string notes: B, C, D etc.
Put on a metronome or drum machine as slow as seems really, really easy and just play through the notes. If you hesitate at any point just go slower. It should seem stupidly easy. Then build up speed. Write out as many of these random sheets as you need or just start at different places so you never memorise the notes. Also say the notes aloud and look ahead each time you play a note. So play the note then immediately look ahead .
Keep playing the E string notes until they seem easy then move onto A string. Then combine the two strings. Then the D string. Then combine E, A and D. The G string. Then all strings combined. Before you know it you'll be finding the notes are a breeze.
Then add accidentals on each string using the same system of each string. Then go through different keys: 1 sharp, 1 flat, 2 sharps, 2 flats etc.
This same method can then be applied to a 2nd position from frets 7 to 10. Rhythms can also be practiced in isolation.
I found doing this reeeeally helped me and got me started. Of course then gigging is the best practice but it used to bug me when my sight reading non-bass playing friends would tell me that you need to just read in bands to get better at reading. I still think that's a load of bull. They forget they had to start somewhere, probably playing very slowly through pieces as little kids.