簡體   English   中英

Spark-Java 靜態文件位置問題

[英]Spark-Java static files location issue

我從我的主要方法中調用了 staticfiles.location("/public"),在任何其他 spark 方法之前,出於某種原因,只有靜態文件目錄下的一個目錄正在使用縮短的路徑。 我的模板目錄“public/templates”中的文件必須用“/public/templates/foo.vtl”調用,但是我的CSS目錄中的文件“public/css”可以用“/css/bar.css”調用

我可以注意到的一件事是 css 文件的縮寫路徑最初在我的 .java 文件中,但現在在我的模板文件之一中。 它仍然適用於模板文件。 為什么在我的公共文件夾下無法識別我的模板文件夾,但我的 css 文件夾是?

我正在為這個項目使用 IntelliJ 想法。

這是我的代碼,盡管它與 Spark 網站上的布局教程代碼幾乎相同。 幾周前我在 Netbeans 上遇到了類似的問題,切換 IDE 似乎可以解決這個問題。 這可能是我的 IDE 沒有更新某種資源文件的問題嗎? 我難住了! 這不是什么大問題,但我寧願知道為什么它不起作用,也不願繼續幸福地無知。

    public static void main(String[] args) {
    staticFiles.location("/public");
    String layout = "public/templates/layout.vtl";
    //secure("public/keystore.jks", "password", null, null);

    get("/", (req, res) -> {
        HashMap model = new HashMap();
        model.put("template", "public/templates/main.vtl");
        return new ModelAndView(model, layout);
    }, new VelocityTemplateEngine());

    get("/page2", (req, res) -> {
        HashMap model = new HashMap();
        model.put("template", "public/templates/main2.vtl");
        return new ModelAndView(model, layout);
    }, new VelocityTemplateEngine());

這是我的文件夾結構的圖像,以防上面的文字混亂沒有多大意義:

在此處輸入圖片說明

編輯:根據請求,以下是我的目標目錄的內容。

在此處輸入圖片說明

您必須使用"templates/"而不是"public/templates/"

因為您指定的位置被解釋為“public/public/templates”並且它不存在於您的目標目錄下。

當您創建ModelAndView(model,templatePath) 時,您從布局變量(“public/templates/layout.vtl”)中指定了錯誤的值。 您必須為每個模板設置路徑。 就像下面的例子。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM