diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb
index <HASH>..<HASH> 100644
--- a/lib/sinatra/base.rb
+++ b/lib/sinatra/base.rb
@@ -1177,6 +1177,14 @@ module Sinatra
         set(:public_folder, value)
       end
 
+      def public_dir=(value)
+        self.public_folder = value
+      end
+
+      def public_dir
+        public_folder
+      end
+
    private
       # Condition for matching host name. Parameter might be String or Regexp.
       def host_name(pattern)
diff --git a/test/settings_test.rb b/test/settings_test.rb
index <HASH>..<HASH> 100644
--- a/test/settings_test.rb
+++ b/test/settings_test.rb
@@ -484,6 +484,18 @@ class SettingsTest < Test::Unit::TestCase
     end
   end
 
+  describe 'public_dir' do
+    it 'is an alias for public_folder' do
+      @base.public_dir = File.dirname(__FILE__)
+      assert_equal File.dirname(__FILE__), @base.public_dir
+      assert_equal @base.public_folder, @base.public_dir
+
+      @application.public_dir = File.dirname(__FILE__)
+      assert_equal File.dirname(__FILE__), @application.public_dir
+      assert_equal @application.public_folder, @application.public_dir
+    end
+  end
+
   describe 'lock' do
     it 'is disabled by default' do
       assert ! @base.lock?
alias public_folder as public_dir