Local adaptation is considered to be the result of fitness trade-offs for particular phenotypes across different habitats. However, it is unclear whether such phenotypic trade-offs exist at the level of individual genetic loci. Local adaptation could arise from trade-offs of alternative alleles at individual loci or by complementary sets of loci with different fitness effects of alleles in one habitat but selective neutrality in the alternative habitat. To evaluate the genome-wide basis of local adaptation, we performed a field-based quantitative trait locus (QTL) mapping experiment on recombinant inbred lines (RILs) created from coastal perennial and inland annual races of the yellow monkeyflower (Mimulus guttatus) grown reciprocally in native parental habitats. Overall, we detected 19 QTLs affecting one or more of 16 traits measured in two environments, most of small effect. We identified 15 additional QTL effects at two previously identified candidate QTLs [DIVERGENCE (DIV)]. Significant QTL by environment interactions were detected at the DIV loci, which was largely attributable to genotypic differences at a single field site. We found no detectable evidence for trade-offs for any one component of fitness, although DIV2 showed a trade-off involving different fitness traits between sites, suggesting that local adaptation is largely controlled by non-overlapping loci. This is surprising for an outcrosser, implying that reduced gene flow prevents the evolution of individuals adapted to multiple environments. We also determined that native genotypes were not uniformly adaptive, possibly reflecting fixed mutational load in one of the populations.