This type of behavior typically occurs when your Component Template is set to dynamic, but your Content Delivery environment and/or Pages are not setup correctly.
For instance, your pages could be using the .html extension, which (by default) will not execute server-side code. Since DCPs get added to the pages on the server-side, the content will not be loaded if your extension is .html. A clear sign that this is happening is that you'll see tags like this:
<tridion:ComponentPresentation [...] />
in your page source in the browser.
Another possible reason is that your Publication Target is configured to use "Language: None", which means that Tridion can't create the required Content Delivery API calls to load your Dynamic Component Presentations.
Yet another possible reason is that you configured your Component Templates to use output format "Jsp" or "Ascx" but didn't configure it properly in your cd_storage_conf.xml on the delivery side.
And the list goes on and on. Adding more detail (for instance, covering the examples I mentioned above) will help us help you.