I'm afraid I stepped on my own 'appendage' when I took a Magento 2 dev site and simply moved all of the files from the 'dev' directory to the 'live' directory on the same server. Then after we took the site out of maintenance mode I ended up with a blank page with error logs full of unresolved symbolic links. So I performed a 'shortcut', I copied the entire live site to the dev site directory as a 'temporary' fix. Of course this has to be resolved permanently, but I had no idea that there were 1000 +/- symlinks that were affected. So the question is, is there a programmatic way of changing for example the following:
current symlink name:
/var/www/vhosts/website.com/httpdocs/pub/static/frontend/Magento/luma/en_US/jquery.js
current symlink target:
/var/www/vhosts/website.com/dev.website.com/lib/web/jquery.js
change to target:
/var/www/vhosts/website.com/httpdocs/lib/web/jquery.js
in a shell script?
So I need to find all symlinks that have as part of their target:
/var/www/vhosts/website.com/dev.website.com/........
to:
/var/www/vhosts/website.com/httpdocs/......
M2 does have symbol link files since m2.0.1. I had the same experience with sackerman ever. What you can do is create a separate dev server with same file structure as production server. So the symbol link will work after you copy or move files.
You can use find to list all symbol link files. I remember that is a large number. It will take you long time to modified them one by one.
I suggest M2 stop symbol link files but copy duplicated files directly. Anyway hard disk is not so expensive as before. And tiny css, js, php files will not take too much disk space.
Well, I discovered that all symlinks were in the '/pub/static/frontend/' subdirectory structure, so I just needed to delete all of the folders and re-run the static content deploy command. I guess it pays to 'think' before panicking ;-)