US president Donald Trump has blamed “many sides” for the violent clashes between protesters and white supremacists in Virginia, but stressed the “hatred and bigotry” broadcast across the country had taken root long before his political ascendancy.

But Charlottesville’s mayor argued that Mr Trump’s election campaign last year fed the flames of prejudice.

Michael Signer said he was disgusted that the white nationalists had come to his town and blamed Mr Trump for inflaming racial prejudices with his campaign last year.

“I’m not going to make any bones about it. I place the blame for a lot of what you’re seeing in American today right at the doorstep of the White House and the people around the president,” he said.

Mr Trump, on a working holiday at his New Jersey golf club, had intended to speak briefly at a ceremony marking the signing of laws to help veterans, but quickly found that those plans were overtaken by the escalating violence in the Virginia college town.

Speaking from a podium set up in the golf clubhouse, Mr Trump said that he had just spoken to Virginia governor Terry McAuliffe.

“We agreed that the hate and the division must stop, and must stop right now. We have to come together as Americans with love for our nation and … true affection for each other,” Mr Trump said.

“We condemn in the strongest possible terms this egregious display of hatred, bigotry and violence on many sides, on many sides.

“It’s been going on for a long time in our country. Not Donald Trump. Not Barack Obama. It’s been going on for a long, long time.”

The president said “what is vital now is a swift restoration of law and order and the protection of innocent lives”.

After completing his statement and the bill signing, Mr Trump left the room, ignoring reporters’ shouted questions, including whether he wanted the support of white nationals who have said they backed him, or if the car crash in Virginia were deemed intentional, would it be declared to be terrorism?

Several Republicans pushed for a more explicit denunciation of white supremacists.

Colorado senator Cory Gardner tweeted: “Mr. President – we must call evil by its name. These were white supremacists and this was domestic terrorism.”

Florida senator Marco Rubio wrote: “Nothing patriotic about #Nazis,the #KKK or #WhiteSupremacists It’s the direct opposite of what #America seeks to be.”

Even New Jersey governor Chris Christie, a staunch Trump supporter, wrote: “We reject the racism and violence of white nationalists like the ones acting out in Charlottesville. Everyone in leadership must speak out.”