I wouldn't put application code on a network mounted filesystem. Run that locally. Rsync, svn, git make having a centralized management location easy to push changes out. I believe it far preferable to have application code running from local disk, as opposed to over the network.
For all other assets, image files, videos, graphics, etc. I believe you'll find NFS an easy and cost effective solution. There are plenty of NAS devices at various price points and performance levels, and unless your requirements call for storage switches and fiber cards, you can do everything over plain CAT copper and your existing network infrastructure. Building your own basic NFS server is also quite feasible even for novices.
NFS drivers and packages exist for virtually every OS distribution and are usually quite reliable. And especially for your basic webserver.
Local file caching presents another layer of complexity, especially if you're writing to the NFS share, that I would avoid unless you absolutely need to maximize performance.