When I save a lisp image and copy the image together with quicklisp/ directory to another location, the libraries can not locate their static files. In my example, hunchentoot says "The requested URL / was not found on this server."
This is the reason why asdf3 has register-image-restore-hook and register-image-dump-hook, so you may register functions that (re)initialize variables that hold such paths when you restore your image (which also runs the function immediately by default) and unbind them before you dump a new image (which doesn't).
I have tried to (asdf:clear-configuration) before saving the image and after image is restored to (setf ql:*quicklisp-home* (truename (merge-pathnames "quicklisp/" *default-pathname-defaults*))) (ql:setup) but it didn't help.
Well, if asdf:system-relative-pathname is called while evaluating the defvar or defparameter, then it must be called again when the image is restored.
I should probably define a (define-image-variable ...) or some such that automatically registers a function to re-initialize the variable when the image is restored.
Of course, you must then update all relevant libraries to use it.
For general use, where application depends on many libraries I am afraid there is no way to make relocatable lisp images. Even if I find a way to reinitialize asdf and quicklisp configurations, there are libraries which have their own custom variables holding file system paths. For such applications I only see one reliable way - prebuild all the .fals files with disabled asdf-output-translations so that .fals files are placed near the sources. Then copy full application and library sources to new location and reload them by (load "quicklisp/setup.lisp") (ql:quickload :my-application).
If that's the route you choose, instead of the one that consists in fixing libraries to take image restore and dump into account, you could use ASDF's fasl-op or monolithic-fasl-op to deliver those fasls.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I have never let my schooling interfere with my education. — Mark Twain