14

I have an online presentation to do next week and I have it all ready to go.

The website is HTML and CSS only (no DB), and currently resides on my shared hosting account.

Now, although my shared hosting is (relatively) reliable, I have noticed that recently they have been making some changes and my website has been unavailable at times.

I don't want this to happen to me on the morning of my presentation, so I am asking what is the best way to prepare for such a thing?

My domain is www.presentation.example.com and I would like to keep this if possible (even if issues arise).

I have been thinking of a few alternatives:

  • Host my site on two different domains or servers (but what about the domain name?)

  • Have a portable XAMPP version on a USB stick (again, domain name?)

  • Possible failover site/location

Update:

The presentation will be carried out on their laptop, not mine. So I am unable to install any software.

3
  • Just block the site to 127.0.0.1 (via hosts file if on windows). Then if you go to that site, apache will serve localhost. I do this on my dev machine :P Aug 20, 2014 at 6:08
  • 2
    Maybe using HTTrack to completely download it offline for your USB stick scenario?
    – Uwe Keim
    Aug 20, 2014 at 11:36
  • The prevention of Demo Demons... Demos going wrong is as predictable as Murphy's law. Given it's not a php application, hosting locally on a portable machine and adding a hosts file entry pointing your domain at 127.0.0.1 will do the trick. Aug 22, 2014 at 3:00

10 Answers 10

14

Normally, you do not need any server just to view raw HTML files, even if they reference other files, CSS and JavaScript. Simply double click on any file and it will open with the default browser of your machine from the local file system.

However you may need to check if your static content has no absolute references to other files or other resources (<a href='http://example.com/extra.html'>) and only contains relative references (<a href='extra.html'>). It is a good practice anyway.

Best would be to copy in advance the content into hard drive of the laptop will be using, and test the presentation. Bring also the same content in USB stick or CD disk, in case you would suddenly need to use another machine.

2
  • I've tried this and it works thanks, although I don't have access to the laptop I will be using, it works fine on a USB with random PCs. Wasn't sure if I needed a server or not, seeing as I have css and js files. Thanks!
    – jonboy
    Aug 20, 2014 at 8:20
  • 2
    @johnny_s CSS and JS are all run in the client (aka browser). No serve required.
    – Ryan
    Aug 20, 2014 at 15:56
10

Since your site is static, one solution is to use CloudFlare, because it can still serve cached pages if your site goes down (with proper configuration). It will be transparent if there is an issue.

And keep a copy of your site on your laptop or on a memory stick if you can't use your laptop. If all goes wrong, you will still able to finish your presentation using localhost rather than your domain name. It would be the last resort solution.

P.S.: Of course, to implement a portable website, one should implement relative paths everywhere, that is with a leading '\' meaning 'relative from the root'. Don't forget it, otherwise the link will be relative to the current directoy.

7
  • Thanks @JVerstry I've never heard of CloudFare must look into it. I've also updated my original question, I don't own the laptop so won't have any prior access to install software etc.
    – jonboy
    Aug 19, 2014 at 10:03
  • @johnny_s I have updated my answer, you can put a copy of your presentation on a USB memory stick which you can plug onto that laptop if all goes wrong. Aug 19, 2014 at 10:06
  • Thanks @JVerstry - do you mean install it on USB with XAMPP or similar?
    – jonboy
    Aug 19, 2014 at 10:07
  • 2
    No just copy the files you would normally upload on your webserver on the USB stick. Then, open the index.html page with your browser (double-clicking on it would be sufficient). No need to install XAMPP or whatever. Aug 19, 2014 at 10:09
  • 1
    You can map localhost ip (127.0.0.1) to your domain of choice using Hosts, that way you will avoid ugly numbers in address bar when running from local server. When running files locally (without server) you may encounter issues with blocked content (js, active/x, flash etc) so test it first, fighting with random popups will look unprofessional.
    – PTwr
    Aug 19, 2014 at 10:39
6

If the website is HTML and CSS only, You don't need a host. Just throw it on the USB stick that that you're going to use for the redundant WAMP environment and run it from whatever machine you plug it in to.

If you're worried about losing the USB stick, the web host would be a suitable backup.

1
  • 1
    This is the way to go. You could even go so far as to install a portable server on the stick, too. But since it's purely HTML and CSS there's no need for that.
    – jay_t55
    Aug 19, 2014 at 20:36
5

You could host the static content using Amazon S3. See http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html for a guide as to how.

Basically you sign up for an AWS account, upload your website into S3, and can then access it via a URL like <bucket-name>.s3-website-<AWS-region>.amazonaws.com. You can also create a custom domain for the bucket with a CNAME, which would then allow you to access it via presentation.example.com.

You should be covered by the S3 free tier, 5GB and up to 20000 requests a month for a year. Source: http://aws.amazon.com/free/

https://chadthompson.me/2013/05/static-web-hosting-with-amazon-s3/ offers a good walkthrough of the process with screenshots.

If you don't need the domain to be internet accessible for the presentation, then using a USB drive with a copy of the website on it is by far the simplest way, as per Prinsig's answer.

0
5

You can simply open the internet page locally and display it in your browser.

If you even want to show a different domain name, you can use XAMPP to open a local webserver. Host your website there and point the domain to your localhost on your machine by appending the following line to your hosts file on your system:

127.0.0.1    www.presentation.example.com

Here you can find out where the hosts file is located on your OS.

1
  • I like this solution!
    – jonboy
    Aug 19, 2014 at 15:19
4

So many overly-complicated answers.

The website is HTML and CSS only (no DB), and currently resides on my shared hosting account.

You do not need Apache You do not need XAMP (or similar) You do not need cloudflare, dropbox or any other 3rd-party service. (github? for a presentation? It isn't needed.)

All you need is a portable storage device. USB key, external drive, whatever.

What you DO need is to confirm that your presentation contains only relative links. Here's how you do it:

  1. Copy the folder from your shared hosting account to your computer.
  2. Disable networking, turn off your wifi, unplug your ethernet cable etc. Or just pick up your laptop and go somewhere where there is no wifi, like the stairway or parking lot.
  3. Open the folder, double-click on the first index.html file and see if it looks correct.

If everything is fine, you are good to go. If not, add a comment for further instructions.

4
  • You should be using git for version control anyway, so why not push it to Github?
    – daviewales
    Aug 21, 2014 at 6:35
  • @daviewales I disagree with this answer. Why disable networking?
    – William
    Sep 11, 2014 at 12:40
  • @WilliamDavidEdwards ^^That's not my answer. I just commented on it.
    – daviewales
    Sep 13, 2014 at 7:37
  • @daviewales Sorry. Can't edit the comment anymore.
    – William
    Sep 13, 2014 at 7:53
4

If you are using Git for version control of your site... (not to judge... but you kinda should be if it's an important project!)

You can host your entire website on Github's "project pages". (aka Github Pages)

It's really simple to just git push your site code there. Basically you push to a branch called gh-pages and your site will automatically publish, and update when you push!

So if your project's GitHub repo page is https://github.com/imausername/mysupersite Then the public GitHub page for your project would be at iamusername.github.io/mysupersite

3
  • Thanks for this, I have very little knowledge of git, and it may be a little late to learn it now as the presentation is in a few days and I am focused on that. Thanks though for the great answer!
    – jonboy
    Aug 20, 2014 at 6:42
  • 1
    Or mercurial. Or even Dropbox at minimum. But one should always keep important projects under some sort of version control. Aug 20, 2014 at 15:22
  • 1
    @johnny_s Git is really quite simple after you "git" it ;) If you have 15 min to spare... give it a go at try.github.com Aug 25, 2014 at 5:54
1

To make sure your website is available, you can use round-robin DNS. You can order two hosting packages with two different IP's and use round-robin DNS for load balancing. If one IP is offline, the traffic will be redirected to the other.

The other way is with CloudFlare. You can use CloudFlare + round-robin DNS for extra reliability. CloudFlare is a free (they have paid plans too) service which adds security and analytics to your website. You can also use their CDN. It will really optimize your website. But the best part is that if your site goes down, they can show a cached version. All you have to do is change your nameservers. You can find more information about that on their website.

There's one more thing:

Now, although my shared hosting is (relatively) reliable, I have noticed that recently they have been making some changes and my website has been unavailable at times.

If your host doesn't use a failover server or something, it's probably better to search for another host - your website should always be available if it's possible.

1

And, last but not least, make screenprints of all the webpages you were planning to display. Hey, it's worked for me. Put them in Power Point or just organized by name/sequence. Murphy's Law has no boundaries!

1

I think you can write them onto a notepad document, save as foo.html or something along those lines, and open, it won't rely upon the internet (admittedly I'm not sure how to fit the CSS in there I've never made to much HTML, or any CSS so you can try not sure how it will turn out).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.