Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

How to remove protocol and host in template


Reply


3 Posts   503 Views

Avatar
Tim Snadden

Community Member, 32 Posts

21 June 2012 at 1:35pm

Edited: 21/06/2012 1:35pm

Does anyone know how to prevent silverstripe (2.4) outputting the protocol and host when linking to internal assets etc?

In the markup I am getting:

<script type="text/javascript" src="http://my.exampledomain.com/mysite/app/router.js?m=1340064453"></script>

and I want just:

<script type="text/javascript" src="/mysite/app/router.js?m=1340064453"></script>

The reason is that requests are going through a proxy so requests to https://localhost:8000/ are being proxied to http://my.exampledomain.com/ so I don't want http://my.exampledomain.com/ in the markup.

I've had a look around in Director and tried a few things including:

Director::setBaseURL('/');

Any ideas?

Avatar
Willr

Forum Moderator, 5513 Posts

21 June 2012 at 10:21pm

Taking a look at the code it looks like this is hard coded to being absolute. In the Requirements_Backend::path_for_file() class you would need to replace the prefixed value. Patches welcome to make this more accessible.

Avatar
Tim Snadden

Community Member, 32 Posts

22 June 2012 at 9:54am

Thanks for looking at it. I ended up modifying the path_for_file function in core/Requirements.php as follows:

// $prefix = Director::absoluteBaseURL();
$prefix = Director::baseURL();

I would rather not have modified the framework and I guess I was looking for a javascripty way of overriding the function but it doesn't seem like PHP works this way from what I can see.