Please don't put the script files in the content database. In other other words don't upload it into a Document Library etc, saves round-trip to the database to get the script files every time the page is refreshed.

Dude has a point with performance. However, if you're developing for the sandbox, the content DB is your only option. And if you're developing for Office365... well the hardware's not your problem in the slightest (though might be an idea to keep an eye on the performance quota).
–
James LoveMay 11 '11 at 19:47

Good point James! Since the question was "_layouts" vs "content db" we should assume he has access to deploy to "_layouts" folder. What do you think?
–
Karthik MurugesanMay 11 '11 at 19:50

Yup absolutely - thought it might add a bit of value for anyone else coming across the question.
–
James LoveMay 11 '11 at 19:53

Assetlib has its advantages (it gets cached so i wouldnt worry alot about performance) with versioning and can be used for cloud and multitenancy (as it is not stored on the disk). LAYOUT doesnt suffer from incorrect max-age, so a single roundtrip is saved here.

As always with SharePoint, the answer is, that it depends...

Regarding scriptlink and cssregistration i must admit i usually have CSS and HTML gurus to do that stuff for me, but i am sure i read somewhere that script and link tags are discarded by SharePoints safe mode parser. Anyways we always use scriptlink and cssregistration, since it is what the product does itself.

if you are deploying your master to the file system - then feel free to deploy your scripts there as well (_layouts\yourapp is the answer). If you are deploying your master to the gallery, put your scripts/styles on the same level as well (assetlib is cool). as you can see, I just want to bring scope/visibility to play here