
這裡是前端開發人員 - 我剛剛繼承了一台伺服器(Mac Pro)來在我們的網路中託管我的原型。上面已經設定了一個apache伺服器,但我不太了解它的配置。這是一個共享伺服器,因此雖然伺服器根目錄設定在/Users/Shared
,但我只有權限將我的原型放置在
/Shared/mydiv/mydept/prototypes
我使用 webpack 建立我的網站,並將靜態資源放置在一個dist
目錄中。伺服器配置正常;使用者可以瀏覽sharedserver.url.com/mydiv/mydept/prototypes
並正確提供index.html。
問題是 index.html 引用scripts.js
,也位於該dist
目錄中,但 Web 伺服器正在 shareserver.url.com 的伺服器根目錄中查找它們,這顯然會傳回 404。
我在index.html 中引用腳本,如下所示:
<script src="scripts.js"></script>
同樣,我需要引用位於dist/fonts
.
sharedserver.url.com/ <-- APACHE TRYING TO ACCESS STATIC ASSETS HERE
|_mydiv/
|_ mydept/
|_ prototypes/
|_ _ dist/
|_ index.html
|_ scripts.js <-- REALLY WISH APACHE LOOK FOR STATIC ASSETS HERE
| _ _fonts/
|_.eof,.ttf,etc.
我讀過一些有關使用虛擬主機的內容,但該模組尚未加載到 httpd.conf 中(已註釋掉),並且我不想與現有配置發生衝突,我還沒有完全理解這一點。我還讀過有關.htaccess 檔案的內容,但在httpd.conf 中將AllowOverride 設為None - 我可以更改它,然後開始學習.htaccess 但我想知道是否還有另一種方法,因為我沒有經驗設置此類事情。
有其他(簡單的)方法可以讓 apache 在我的目錄中找到我的靜態資產嗎?
答案1
我認為這是因為你的文檔根目錄是這樣設定的
DocumentRoot "/sharedserver.url.com"
你想要這樣的:
DocumentRoot "/sharedserver.url.com/mydiv/mydept/prototypes/dist"
且目錄路徑必須與文檔根目錄相同
<Directory "/sharedserver.url.com/mydiv/mydept/prototypes/dist">
如果您這樣做並使用您的網域網址,您將被帶到index.html並且您的腳本將正確顯示
我希望這能解決你的問題
答案2
base
我遇到了同樣的問題,在我的情況下,這是由index.html 的 head 部分內的標籤值引起的:
<base href="/">
這會將相對 URL 的基本 URL 設定為伺服器根目錄。我可以透過刪除/更改標籤來解決問題base
。
我希望這有幫助。